improved scenario io