better related caching and layout