added caching and updating in the browse controller function