use hierarchy adapater instead