I added a lot of comments, changed the code so that the variables implented from GAParams are used, Found out that mutate checks each child seperately; changes only one gene; and the change can be any gene (unlike coupling where only genes before the last gene but after the first gene) I will implement this in the next commit