self-replicate problem