Implement multiple types, closes #12.