laying down grounds for oop changes - untested