change how to init the register