the docstring in `add()` suggests that `add_data` will update rather than overwrite if the `versop_new_str` key is already there, but I don't see that implemented here? It will only update if the key is there *and* `update` is True, the docstring in `add()` suggests otherwise.