Lots and lots and lots of work. Library built using TDD, need to try real-world usage now.

Signed-off-by: Ben Corlett <bencorlett@me.com>