added constructor for abstract class