expanded spec
completed refactoring; everything works as before.
third example is now sufficient (if minimal)