# this class can be used for overwriting soft parameters
