User input, moved sanity checks to the input.