Almost finished with OOP refactor.