input and output types