https://devhubby.com/thread/how-to-use-redux-thunk-to-handle-asynchronous