That's why, for better or worse, the code currently exists in GenericRequest. So perhaps it could be handled better, but the current code structure allows for handling all of those things, and all of those listed cases are from newer content that hasn't been added.