Added support for model extension via the AbstractModel.extend() function