fix trait => abstract class as described