pass cache to construct