write blog about singleton pattern