traitsとmixinを組み合わせればできないことはないだろう