比较完善的版本