added preGain option