https://medium.com/@mayank2000jain/mastering-design-patterns-a-guide-with-real-life-examples-249eec5d07e2