Add Model View Controller Pattern