Added full mating functionality