implemented icon caching system