https://javascript.plainenglish.io/5-key-concepts-of-angular-every-angular-developer-should-know-ae96c4c39801