Initial addition of code and tests.