register is re-designed