消除一部分代码冗余，现在框架支持命名空间。ps：待运行单元测试