Should the new currentBranch be contained in the set of branches? What would it mean if it wasn't? What does it mean when currentBranch is null?