Concuerdo con zsamer, seguramente puedes delegar tareas a otros objetos / controladores, recuerda que la tarea del controlador es la de enlazar los resultados, por lo que puede echar mano de otros objetos para hacer tareas especificas, por ejemplo:
Código PHP:
class Controller {
public function run() {
$user = $this->usersModel->findByPk(1);
$data['user'] = $user;
$calc = new MortageCalculator($user->userType);
$data['mortage'] = $calc->calculateMortage();
$data['rate'] = $calc->getUsedRate();
$this->view->assign( "data", $data );
}
}
Saludos.