https://medium.com/@shivanireddyyy/mastering-singleton-design-pattern-in-java-a-blueprint-for-global-resource-management-daf3b1cea9a