all design changes done. refactoring still required