fleshed out input variables and sanity checks for the inputs