I still really don't like this. I understand it why you did it (the ```req``` here is just a String instead of a Request object where we could just add ```opts``` on it as an ivar), but I still think returning a Hash is surprising and will lead to bugs.