refactor concrete branching implementation