add singleton pattern demo