make trait an abstract class