 }
 
 // Main movement command
-void goForward(uint8_t speed) {
-}
-
-void goBackward(uint8_t speed) {
-  turnBack();
-  goForward(speed);
-}
-
-void goLeft(uint8_t speed) {
-  turnLeft();
-  goForward(speed);
-}
-
-void goRight(uint8_t speed) {
-  turnRight();
-  goForward(speed);
-}
-
-// Helper movement
+void goForward(int vPower) {
+  motor.setM1Speed(vPower);
+  motor.setM2Speed(vPower);
+
+  delay(1000);
+  stopEngine();
+}
+void goBackward(int vPower) {
+  motor.setM1Speed(-vPower);
+  motor.setM2Speed(-vPower);
+
+  delay(1000);
+  stopEngine();
+}
+
+void turnLeft(int vPower) {
+  motor.setM1Speed(-vPower);
+  motor.setM2Speed(vPower);
+
+  delay(500);
+  stopEngine();
+}
+
+void turnRight(int vPower) {
+  motor.setM1Speed(vPower);
+  motor.setM2Speed(-vPower);
+
+  delay(500);
+  stopEngine();
+}
+
+void turnBack(int vPower) {
+  motor.setM1Speed(vPower);
+  motor.setM2Speed(-vPower);
+
+  delay(1000);
+  stopEngine();
+}
+
+void stopEngine() {
+  motor.setM1Speed(0);
+  motor.setM2Speed(0);
+}
+
+// Movement helpers
 int speedToPower(uint8_t speed) {
   int v;
   switch(speed) {

  if (adk.isReady()) {
      adk.read(&bytesRead, BUFFSIZE, buffer);
    if (bytesRead > 0) {
      jeepCommandInterpreter(buffer[0], buffer[1]);
    }
  }
}

void jeepCommandInterpreter(uint8_t command, uint8_t speed) {
  switch(command) {
    case 0:
      goForward(speed);
      break;
    case 1:
      goBackward(speed);
      break;
    case 2:
      goLeft(speed);
      break;
    case 3:
      goRight(speed);
      break;
    default:
      Serial.println("Command not available");
      break;

  
  // Return a safe motor power
  return motorProtection(v);
}

// Emergency checks
