Added some more methods and tests. I think it's almost complete.