lots and lots of cleanup