more OOP and simplifying stuff