See #19, added unit tests for much of the code
Added ignore to the incomplete tests so they show up