add cache for layoutZone