           }
         }
         else
-        if (current_buffer[i] == 'D'){// disable motor
+        if (current_buffer[i] == 'D'){// Disables motor command.
           // find the terminal character #
           int j = i + 1;
           for (; j < buffer_length && current_buffer[j] != '#'; j++);// parse until I find the termination char
           if (j < buffer_length){
               char tmp_str[64];
-             // Serial.println(i);
-             // Serial.println(j);
               strncpy(tmp_str, current_buffer + i + 1, j - i - 1);
               tmp_str[j - i - 1] = 0;
               int motor_index;
-        //      Serial.write(tmp_str);
               sscanf(tmp_str, "%d", &motor_index);
               disable_motor(motor_index);
               // remove the current executed command
               strcpy(current_buffer, current_buffer + j + 1);
-          //    Serial.write(current_buffer);
               break;
           }
           else{// the string is not completed ... so I must wait more...

      strcat(current_buffer, arduino_buffer);
      // parse from the beginning until I find a M, D, S or A
      int buffer_length = strlen(current_buffer);
      //Serial.write(current_buffer);
      for (int i = 0; i < buffer_length; i++)
        if (current_buffer[i] == 'M'){// move motor
          // find the terminal character #

          for (; j < buffer_length && current_buffer[j] != '#'; j++);// parse until I find the termination char
          if (j < buffer_length){
              char tmp_str[64];
              strncpy(tmp_str, current_buffer + i + 1, j - i - 1);
              tmp_str[j - i - 1] = 0;
              int motor_index, num_steps;
              sscanf(tmp_str, "%d%d", &motor_index, &num_steps);
              move_motor(motor_index, num_steps);
              // remove the current executed command
              strcpy(current_buffer, current_buffer + j + 1);
              break;
          }
          else{// the string is not completed ... so I must wait more...
