Form em várias etapas CODEIGNITER

Boa noite pessoal.
Há poucos dias comecei os estudos sobre CODEIGNITER e me deparei com um desafio:
Fazer um formulario de cadastro com várias etapas.
Eu consegui mas creio que o metodo que utilizei não é o mais eficiente, para cada etapa(são 4) eu criei um controller que atravez do metodo index() chama a sua respectiva view e no final todos os dados são jogados em um model e então ao banco.
Admito que deu muito trabalho fazer dessa forma então queria saber se voces usam uma maneiro diferente.
ah!..
Para passar os valores eu utilizei input’s hidden mas parece que o correto seria usar session…
Por favor qualquer ajuda/dica será bem vinda!
Obrigado :slight_smile: