https://medium.com/@irfin.afifudin/a-more-reliable-thread-save-java-singleton-class-implementation-44fd06f447af