move the model creation logic to controller plugins