Updated singleton design pattern