https://blog.stackademic.com/mastering-angular-forms-a-comprehensive-guide-for-angular-developers-6ca888f44941