these inputs should have types, for clarity.