improved the superclass
The two easy ones
The hard one