reflect: when to use separate branch