abstracting couchdb