First commit
Some test cases and initial design