Potential `NullReferenceException` here. Probably doesn't make sense to allow a null `input` ever so let's just throw an `ArgumentNullException` if the `input` is null.