add Singelton pattern