making more OOP