第三版本的，更加灵活了