   if (graph_loaded) {
     run_state = new_state;
   }
-  // next line... just for fun (remove later ;)
-  //digitalWrite(led, (int)run_state);
   if (!previous_state && run_state) { // rising edge
-    enq_message("graph_init");
+    enq_message("msg:graph_init");
 
     #ifdef DUBUG_BUILD
     debug("sent msg graph_init");

  //nodes[n_index].value = run_get_edges(n_index);
  //run_process();
  run_set_edges(n_index);
  run_transition();
  
}


}

void process_message() {
  String msg = deq_message(); // example "msg:graph_init"
  String e_type = msg.substring(0, 3);
  String e_part2 = msg.substring(4);
  char e2[12];
  int e_index = -1;
  int n0_index, n1_index;
  #ifdef DUBUG_BUILD
  debug("pm");
  debug(e_type);
  debug(e_part2);
  #endif
  if (msg[0] == '\0')  {
    #ifdef DUBUG_BUILD
    debug("no msg in pm");
    #endif
    set_run_state(0);
    return;
  }
  if (e_type == "msg") {
    e_part2.toCharArray(e2, 11);
    e_index = get_edge("msg", e2, -1);
  }
  if (e_type == "flo") {
    e_part2.toCharArray(e2, 11);
    n0_index = atoi(e2);
    e_index = get_edge("flo", "from", n0_index);
  }
  if (e_index < 0) {
    #ifdef DUBUG_BUILD
    debug("no edge in pm");
    #endif
    set_run_state(0);
    return;
  }
  else {
    #ifdef DUBUG_BUILD
    debug("pm processing edge (type) ");
    debug(edges[e_index].type);
    #endif
    //n0_index = get_node("id", edges[e_index].from);
    n1_index = get_node("id", edges[e_index].to);
    run_node(n1_index);
  }
