initial commit, still lots of bugs/not implemented