[new] adapter implementation