Finished Refactoring + Factories