more functional case usage
using traits
more traits: interface and mixin
different traits