oop solution