Start to implement deferred movement (incomplete and untested so far).