Add the initial implementation and tests.