Produces Output Accepts Input