https://flamesintech.medium.com/angular-forms-and-validation-a-guide-to-building-robust-forms-cf0e3fc67061