change to use singleton patter for user sdk