My CS has been substantially revised. Still a WIP.