add move callback