https://levelup.gitconnected.com/demystifying-mutexes-in-go-golang-safeguarding-concurrency-with-sync-mutex-f5bcdec1fd0