OOP Refactoring