Skeleton

Pull request for submission
so far as I can tell, there's really no reason this has to be declared as a global.  So long as you are careful not to rebind, it should be possible to use it as a module-level object.