This now extends the abstract class which allows you to only implement what is different.