do it more like OOP