Added initial version, tests.