Merge pull request #49 from qinshihu/refactor/module-architecture