Refactoring以及修改了bug