fix finally use swap to put base into correct position