added caching into metadataprovider