let rec get_state_helper node_list search_id = match node_list with
    (id,targets,visited)::rest when id = search_id -> (id,targets,visited)
  | _::rest -> get_state_helper rest search_id
  | [] -> raise_fsm_error ["State machine error: state ";
                           get_state_name search_id;
                           " has an incoming transition but is not defined."]