make the cache updating process only one, and make stats to cache