anchor.diff: +#define ADD_TREADS_STEP 1
  +#define CONNECT_HYDRAULICS_STEP 2
  +#define ACTIVATE_HYDRAULICS_STEP 3
  +#define ADD_WIRING_STEP 4
  +#define ADJUST_WIRING_STEP 5
  +#define ADD_CONTROL_MODULE_STEP 6
  +#define SECURE_CONTROL_MODULE_STEP 7
  +#define ADD_PERIPHERALS_STEP 8
  +#define SECURE_PERIPHERALS_STEP 9
  +#define ADD_WEAPONS_CONTROLS_STEP 10
  +#define SECURE_WEAPONS_CONTROLS_STEP 11
  +#define ADD_SCANNING_MODULE_STEP 12
  +#define SECURE_SCANNING_MODULE_STEP 13
  +#define ADD_CAPACITOR_STEP 14
  +#define SECURE_CAPACITOR_STEP 15
  +#define INSTALL_BLUESPACE_STEP 16
  +#define CONNECT_BLUESPACE_STEP 17
  +#define ENGAGE_BLUESPACE_STEP 18
  +#define ADD_CELL_STEP 19
  +#define SECURE_CELL_STEP 20
  +#define ADD_INTERNAL_ARMOR_STEP 21
  +#define SECURE_INTERNAL_ARMOR_STEP 22
  +#define WELD_INTERNAL_ARMOR_STEP 23
  +#define ADD_EXTERNAL_ARMOR_STEP 24
  +#define SECURE_EXTERNAL_ARMOR_STEP 25
  +#define WELD_EXTERNAL_ARMOR_STEP 26
  +#define INSERT_ANOMALY_CORE_STEP 27
  +
   ////////////////////////////////
   ///// Construction datums //////
   ////////////////////////////////
   /datum/component/construction/mecha
   	var/base_icon
  +
  +	/// What construction step we're on for displaying messages to viewers
  +	var/message_step = 1
  +	/// If this mech has treads (Clarke)
  +	var/has_treads = FALSE
  +	/// If this mech has a weapons control module (Gygax, Durand, etc.)
  +	var/has_weapons_module = FALSE
  +	/// If this mech has a bluespace crystal in construction (Phazon)
  +	var/has_bluespace_crystal = FALSE
   
   	// Component typepaths.
   	// most must be defined unless
  
positive.code: 	if(!..())
  		return FALSE
  
  	//TODO: better messages.
  	switch(index)
  		if(1)
  			user.visible_message(span_notice("[user] connects [parent] hydraulic systems."), span_notice("You connect [parent] hydraulic systems."))
  		if(2)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] activates [parent] hydraulic systems."), span_notice("You activate [parent] hydraulic systems."))
  			else
  				user.visible_message(span_notice("[user] disconnects [parent] hydraulic systems."), span_notice("You disconnect [parent] hydraulic systems."))
  		if(3)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] adds the wiring to [parent]."), span_notice("You add the wiring to [parent]."))
  			else
  				user.visible_message(span_notice("[user] deactivates [parent] hydraulic systems."), span_notice("You deactivate [parent] hydraulic systems."))
  		if(4)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] adjusts the wiring of [parent]."), span_notice("You adjust the wiring of [parent]."))
  			else
  				user.visible_message(span_notice("[user] removes the wiring from [parent]."), span_notice("You remove the wiring from [parent]."))
  		if(5)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] into [parent]."), span_notice("You install [I] into [parent]."))
  			else
  				user.visible_message(span_notice("[user] disconnects the wiring of [parent]."), span_notice("You disconnect the wiring of [parent]."))
  		if(6)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the mainboard."), span_notice("You secure the mainboard."))
  			else
  				user.visible_message(span_notice("[user] removes the central control module from [parent]."), span_notice("You remove the central computer mainboard from [parent]."))
  		if(7)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] into [parent]."), span_notice("You install [I] into [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the mainboard."), span_notice("You unfasten the mainboard."))
  		if(8)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the peripherals control module."), span_notice("You secure the peripherals control module."))
  			else
  				user.visible_message(span_notice("[user] removes the peripherals control module from [parent]."), span_notice("You remove the peripherals control module from [parent]."))
  		if(9)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] into [parent]."), span_notice("You install [I] into [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the peripherals control module."), span_notice("You unfasten the peripherals control module."))
  		if(10)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the weapon control module."), span_notice("You secure the weapon control module."))
  			else
  				user.visible_message(span_notice("[user] removes the weapon control module from [parent]."), span_notice("You remove the weapon control module from [parent]."))
  		if(11)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] to [parent]."), span_notice("You install [I] to [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the weapon control module."), span_notice("You unfasten the weapon control module."))
  		if(12)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the scanner module."), span_notice("You secure the scanner module."))
  			else
  				user.visible_message(span_notice("[user] removes the scanner module from [parent]."), span_notice("You remove the scanner module from [parent]."))
  		if(13)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] to [parent]."), span_notice("You install [I] to [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the scanner module."), span_notice("You unfasten the scanner module."))
  		if(14)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the capacitor."), span_notice("You secure the capacitor."))
  			else
  				user.visible_message(span_notice("[user] removes the capacitor from [parent]."), span_notice("You remove the capacitor from [parent]."))
  		if(15)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I]."), span_notice("You install [I]."))
  			else
  				user.visible_message(span_notice("[user] unsecures the capacitor from [parent]."), span_notice("You unsecure the capacitor from [parent]."))
  		if(16)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] connects the bluespace crystal."), span_notice("You connect the bluespace crystal."))
  			else
  				user.visible_message(span_notice("[user] removes the bluespace crystal from [parent]."), span_notice("You remove the bluespace crystal from [parent]."))
  		if(17)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] engages the bluespace crystal."), span_notice("You engage the bluespace crystal."))
  			else
  				user.visible_message(span_notice("[user] disconnects the bluespace crystal from [parent]."), span_notice("You disconnect the bluespace crystal from [parent]."))
  		if(18)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] into [parent]."), span_notice("You install [I] into [parent]."))
  			else
  				user.visible_message(span_notice("[user] disengages the bluespace crystal."), span_notice("You disengage the bluespace crystal."))
  		if(19)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the power cell."), span_notice("You secure the power cell."))
  			else
  				user.visible_message(span_notice("[user] pries the power cell from [parent]."), span_notice("You pry the power cell from [parent]."))
  		if(20)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs the phase armor layer to [parent]."), span_notice("You install the phase armor layer to [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the power cell."), span_notice("You unfasten the power cell."))
  		if(21)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures the phase armor layer."), span_notice("You secure the phase armor layer."))
  			else
  				user.visible_message(span_notice("[user] pries the phase armor layer from [parent]."), span_notice("You pry the phase armor layer from [parent]."))
  		if(22)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] welds the phase armor layer to [parent]."), span_notice("You weld the phase armor layer to [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens the phase armor layer."), span_notice("You unfasten the phase armor layer."))
  		if(23)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] installs [I] to [parent]."), span_notice("You install [I] to [parent]."))
  			else
  				user.visible_message(span_notice("[user] cuts phase armor layer from [parent]."), span_notice("You cut the phase armor layer from [parent]."))
  		if(24)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] secures Phazon Armor Plates."), span_notice("You secure Phazon Armor Plates."))
  			else
  				user.visible_message(span_notice("[user] pries Phazon Armor Plates from [parent]."), span_notice("You pry Phazon Armor Plates from [parent]."))
  		if(25)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] welds Phazon Armor Plates to [parent]."), span_notice("You weld Phazon Armor Plates to [parent]."))
  			else
  				user.visible_message(span_notice("[user] unfastens Phazon Armor Plates."), span_notice("You unfasten Phazon Armor Plates."))
  		if(26)
  			if(diff==FORWARD)
  				user.visible_message(span_notice("[user] carefully inserts the bluespace anomaly core into [parent] and secures it."),
  					span_notice("You slowly place the bluespace anomaly core into its socket and close its chamber."))
  	return TRUE
  
  //savannah_ivanov
  
  /datum/component/construction/unordered/mecha_chassis/savannah_ivanov
  	result = /datum/component/construction/mecha/savannah_ivanov
  	steps = list(
  
negative.code: 	outer_plating = /obj/item/mecha_parts/part/durand_armor
  	outer_plating_amount = 1
  
  //PHAZON
  /datum/component/construction/unordered/mecha_chassis/phazon
  	result = /datum/component/construction/mecha/phazon
  	steps = list(
  