factored out value_replace() to make it more like VanDrunen's code