optional protocol and shadowbottom for top layerindex