modified register functions