improve adapter