Support custom types and taxonomies

Closes #6