Refactory

代码进行模块化：将Collection, criteria和utils抽离并模块化。