修复了一些bug，增加了缓存