simple oop design