propagate_io function added
merge