initial commit, see comments