added an interface for the model