moving reservation checks into the model