use adapterChain