moving to more oo approach