changed to oo design