should it be ExposureCalibrator? or CalibrateExposure? In the derived classes you use Calibrate... pattern, probably, you should just rename the base class to CalibrateExposure