controller and view setup