Added supertype enumeration.
Refactored invoke().