Almost completely rewrite everything.