Part I - Add AbstractModel.php