Make use of abstract class inheritance for common fields and methods, remove traits