New adapter implementation