Refactor to use more friendly typedefs for Types vs Classes. Refactor methods to take in Type rather than id.