looper and cache