Massive clean up and changes.