Improved OOP design