Might be good to document precedence. It looks like:

1. request.MOBILE (which comes from the querystring)
2. request.COOKIS.get(MOBILE_COOKIE)
3. request.BROWSER.mobile (which comes from looking at the user agent)
4. looking for the word "mobile" in the user agent

Is that right?