anchor.diff:  	START_PROCESSING(SSobj, src)
   
   /**
  - * # generate
  - *
    * Proc called every 2 seconds from SSMobs to add whatever reagent the udder is generating.
    */
   /obj/item/udder/proc/generate()
  
positive.code: 		generate() //callback is on generate() itself as sometimes generate does not add new reagents, or is not called via process
  
  /**
   * # initial_conditions
   *
   * Proc called on creation separate from the reagent datum creation to allow for signalled milk generation instead of processing milk generation
   * also useful for changing initial amounts in reagent holder (cows start with milk, gutlunches start empty)
   */
  
negative.code: 			on_generate_callback.Invoke(reagents.total_volume, reagents.maximum_volume)
  
  /**
   * Proc called from attacking the component parent with the correct item, moves reagents into the glass basically.
   *
   * Arguments:
   * * obj/item/reagent_containers/glass/milk_holder - what we are trying to transfer the reagents to
   * * mob/user - who is trying to do this
   */
  /obj/item/udder/proc/milk(obj/item/reagent_containers/glass/milk_holder, mob/user)
  	if(milk_holder.reagents.total_volume >= milk_holder.volume)
  