sdm: various small improvements

broke C_vals out of BaseSDM, since not all potential types will use it