client 模块划分