LOTS of cleanup