Update the Observer patter and Singleton pattern learn