https://medium.com/@beyondreactive/how-to-handle-errors-and-logging-effectively-in-your-codebase-b5186487c471