view and cache