refactored MutationGenerator  to make it more readable .. hopefully