Optionals and Traits
My changes