merge ElementIndexed and ElementWrapping classes, adjusting requirements of child classes and render methods