https://medium.com/@BinaryBanter./understanding-usememo-in-react-efficiency-or-over-optimization-dcbb0d6ad0e5