return true only when move succeeded