singleton impl changed