Finished the reproduction functions