interface for term types