first commit, mostly done