A bunch of work to support types, events, and fields.