add cache, new version, fixed #6