first commit, basic functionality exists