use valueFn instead of value