https://medium.com/@techsolutionsx/mastering-typescript-the-ultimate-guide-to-best-practices-for-scalable-and-maintainable-code-6f63080ef1ad