2014-06-09: 模块化雏形，将公用的部分分离出来，改动较大