pass element type down the element class hierarchy