Traits are nicer than an abstract classs