Initial commit. Moved implementation to src/, tests to test/