https://yunielacosta.com/posts/en/singleton-pattern/