Improve adapter
rework adapter implementations