Rewritten nearly everything.