It is too bad a trait cannot implement an interface :(