added reproduction function, not checked