adaptive branching