add couchdbAdapater and implementation