initial commit, a lot of bugs