remove 'dispatcher'; add support for Traits