Feature/first unit tests

Here's the beginning of adding unit tests. There is still a good bit of work to do to improve coverage (currently 33.6% coverage by line).

Also, this PR depends on #2.