might be safer to just move all this stuff in the else block to an internal done function, and call it w/ the self from either ijod or the cache, then the processing is the same (if they added auth=true for instance)