https://medium.com/@arnaud.h.lefevre/why-you-should-never-use-homemade-framework-in-your-professional-project-9c0b04988fd3