Wouldn't pure virtuals be more appropriate here?