https://blog.venturemagazine.net/understanding-react-context-api-with-typescript-a-step-by-step-guide-5ef16c42b3eb