V2 abstract types

Should fix the v2 release.

Looking at the way the tests changed, we should consider adding more convenience functions, the new API is on the verbose side.