second commit, almost complete