Caching system
fix #16