refactor: devide controller.