Implemented crossing and mutation