use super() throughout