oo design
removed oo stuff