implement one point cross over