explicit outputs and inputs