Would be nice to cache all these trait lookups in the constructor.