update singleton pattern