 }
 
 ros::Subscriber<command2ros::ExcavatorCommand> commandSubscriber("ExcavatorCommand", &newExcavatorCommandCallback);
+
+
+// Listen for new conveyor commands
+void newConveyorCommandCallback(const std_msgs::Int16& newConveyorCommand){
+  if(newConveyorCommand.data != 0){
+    currentStatus = START_ROTATING_CONVEYOR;
+    conveyorRotationTime = newConveyorCommand.data;
+  }
+}
+ros::Subscriber<std_msgs::Int16> conveyorSubscriber("ExcavatorConveyorCommand", &newConveyorCommandCallback);
+
+// Reset the current position of the bucketwheel
+void setActualStepCountCallback(const std_msgs::Int16& newConveyorCommand){
+  currentSteps = newConveyorCommand.data;
+}
+ros::Subscriber<std_msgs::Int16> setActualStepCount("SetActualStepCount", &setActualStepCountCallback);
+
+
 
 
 void stopMovementMotors()

  // Initialize ROS stuff
  excavatorNode.initNode();
  excavatorNode.subscribe(commandSubscriber);
  setupExcavatorStatus();

  pinMode(DIRECTION_PIN, OUTPUT);

}

//
// ROS Subscribers
//
command2ros::ExcavatorCommand currentExcavatorCommand;

void newExcavatorCommandCallback(const command2ros::ExcavatorCommand &newManualCommand)
{
  currentExcavatorCommand.drive_speed = newManualCommand.drive_speed;
  currentExcavatorCommand.drive_duration = newManualCommand.drive_duration;
