第一版本完成
重构，插件化