models and abstract