Almost done. Some issues need ironing out.
Then there are the test cases.