https://www.railstutorial.org/book/beginning#fig-MVC