Cannon now has RETURNING state and refined behavior