add non-recursive setDefault
change signature of setDefault and setOverride to make them consistent with each other