User code

Here's all the user code that I have, with tests that pass. There are some pointers at the bottom of the readme for making it work.