input and output