don't mess up input & output ports