inital commit of code into project, has some bugs for generalization