Introduced CacheData to hold key value pair instead of using KeyValuePair type