Changes to OOP structure to adhere to best practices