better oop organization for 0.0.3