changed to oo architecture