revamp backend/adapter API