before factoring out the models
factored model interface out of models