refined abstractions in couch.py