add move and exchange