added:  'onSet' & 'onRemove' callback support