This covers #20 (very minimalist). need to add more unit tests for coverage, but this is okay for now. :)