use value arg instead of valueProperty.get in callback