options.protocol shouldn't need to be checked at this point, right?