could be moved to BranchTracker