Lots of cleanup, changes, and new stuff