Lots and lots of cleanup