bug fix in `Field.setValue`, we need to always return a future