implement image cache for detail view