add move algorithms