Adam, two requests:
1. Can you make this pass the travis build tests? I like the outline so far.
2. Can you wrap the lines to 80 chars?

If you can do that, we can quickly merge this into the main branch, so other people (like aytch!) can pull and contribute bits too at the same time.