https://medium.com/@nuralam201425/typescript-fundamentals-a-complete-guide-for-beginners-74995903a592