Implementation of reproduction functions