Initial implementation with initial basic tests.