实现插件和缓存