modification final with explicit exit