add ability to pass in element type as prop.