Base should be an abstract class