Source: https://everythingcomputerscience.com/books/AngularJSIn60MinutesIsh_DanWahlin_May2013.pdf