add interface to define inputs and outputs