Tests included
Initial code and test.