add a bunch of tests
some refactoring, fixing the grammar, more tests
more stuff?
new method of reifing generics
more generics work