adding distributed cache functionality