adicionando documentacao e ajustando callbacks