Agregamos mensajes de error y cancelación, reestructuradas las
comprobaciones y documentado con más detalle todo el código.