finish new version, with a faster speed