fixed recombine() and added self_reproduce()