functions and function names look good overall

I would make urlxxx lazy, there is no need to import it almost all the time

for usage: I wouldn't bother most of the time about `iterkeys()`  In most of our cases dictionary only have a few keys, and py3 `keys()` doesn't require a helper function and only has a small cost in py2.