refactored self-adaptive mutation