device adapter