use single IModel interface