move cache to interface