Refactoring... ALOT OF IT