First stab at an implementation
Implement a test suite