improve block-setting behaviour