extends the new abstract class