https://medium.com/zestgeek/mastering-the-usestate-hook-in-react-real-life-examples-for-developers-a18cf6ad80b9