updates singleton implementation