compiler caches element