new abstract model classes