onValueChange callback wrapper implemented