implemented super