started to implement oop style