Massive overhaul.  Still broken.