mostly updated the controller interface with the model and added some classes to facilitate