Finished Refactoring yeay!