Traits
What is a Trait
Traits to facilitate horizontal code reuse
Conflict Resolution
Implementing a Singleton using Traits
Multiple Traits Usage
Changing Method Visibility
Traits to keep classes clean