traits => abstract classes