Refactoring the userData API to provide key/value like semantics