IMPROVED: more efficient icon cache method