perhaps this class (and perhaps others?) should be in the same package as `RequestOptions` - seems weird to have a `.impl.` class in the API.