Made type registration more extensible