Implement moving and idle predicated
merging
Idle checking is now robust and reassigning calls also works