added caching privacy
added wrapper function