branching concept