why is this branching needed