https://medium.com/@pryvalov.bogddan/design-patterns-in-react-javascript-with-real-use-cases-605160ba6296