Add AbstractModel and AbstractRepository