 // Constructor for the updateLCD() function
 int updateLCD();
 
+class TimeControl {
+ public:
+  bool pause; // Whether the machine is paused or not
+  unsigned long pausetime; // Stamp for when the machine has been paused
+  unsigned int increment; // How long it should wait for
+  TimeControl() {
+    pause = false;
+    pausetime = -1;
+    increment = 0;
+  }
+};
+
+TimeControl time;
+
 /*
  * Feedrate class, stores information about the current delay the motors should
  * run at and the default value on startup.

}

void loop() {
  getSerialInput();
  sX.updateLoop();
  sY.updateLoop();
  fanOn(temperature.operation);
  updatePos();
}

    }

    return true;
  } else if(gindex == 4) {
    in = trim(in);

    float pindex = getIndex('P', in);

    if(pindex == INT_MIN) {
      out.msg(1, "Parameter P Missing");
      return false;
    }

    time.pause = true;
    time.increment = pindex;

    return true;
  }

  int mindex = getIndex('M', in);
