making it more oop