modified to include super()