各种重构.....   ~_~