将modelFactory所在模块提到源码的前面来，突出其重要性，调整一些函数的位置，并更新大量注释