非完全改动版本。后续继续思考。