first commit, some design done