add service.adapter factory