update register implementation