WIP: Heading in the other direction.  Associated types and classes rather than Dynamic.