implementa el loop principal con maquinas de estado