optimise style, modify register flow