add support for traits