Autonomous Refactoring

I left a list of things that need to be done at the top :)