refactor into an OO module
update documentation, tests and fix a stack problem which affected the autonaming scheme
Merge branch 'master' into object
Merge branch 'master' into object
indicate intent of expiration more clearly