 
   while(Serial.available()) {
       c = Serial.read();
-      out.concat(character);
-  }
-
-  if(content != "") {
-    if(!parseGCode()) {
+      out.concat(c);
+  }
+
+  if(out != "") {
+    if(!parseGCode(out)) {
       Serial.println("Invalid GCode entered!");
     }
   }

    return true;
  } else if(in == "?") {
    Serial.println("TODO Display info...");
  } else {
    return false;
  }
}



  bool update;
  Command command;
  int incr;
  
  Stepper(int stepPinIn, int dirPinIn, int enablePinIn,
          int minPinIn, int maxPinIn) {
    stepPin = stepPinIn;
    dirPin = dirPinIn;
    enablePin = enablePinIn;
    minPin = minPinIn;
    maxPin = maxPinIn;
    update = false;
    incr = 0;
  }

  void begin() {
    pm(stepPin, OUTPUT);
    pm(dirPin, OUTPUT);
    pm(enablePin, OUTPUT);
    dw(enablePin, LOW);
  }
  //void step(double times) {}
  void testSpin(bool clockwise, int amount) {
    if(clockwise)
