trait to abstract class