How is this different from the tweak() method that was already there? Is it just that we've added a tunable mutation rate? Why did we just add that to tweak?