introducing BranchManager