The check for "courseware" below that adds the request to the args list is definitely gross :)  Other options: 1) as Cale suggests, change the signature of all of the tabs. 2) use `inspect` to see if the function has a request parameter, and provide the request if it does.  3) access the request implicitly inside the tab function from RequestCache (poorly named, but it works).  

The image is very nice! :)  And it seems to have worked, because here I am!