小幅度改良了一下，详见readme.md