trying to figure out some OOP approaches