refactored fetch to return a value obj