scala oop
traits