Scala cookbook chp08: Using traits as simple mixins
Scala cookbook:  Using a trait like an abstract class