change io function