intial commit, with basic passing tests