optimization
add a cache tool:LRUCache