Initial commit, tests to come.