代码重构,提出controller