add models with functionality