with input output