using new $super keyword to replace old implementation