Why Supertokens Controller Initialisation creates global variables. Is there any advantage ? If it is using global variables why it is not restricted to create another initialisation of the controller. It is not following the single-ton patter strictly