Initial commit. Structure, tests, set up.