added controllers, models, and a view