update sigleton pattern