controller and model set up