Initial commit, tests basically working.