use methods on the request rather than direct hash access

this will help decouple us from using the rack env hash