first commit, mostly working