improving in progress, need to redefine lot of things