added inputs and outputs