Added selection and mutation methods