OOP Refactor.