allow composing traits and interfaces