Added Branch.clone() to deep copy when needed, not just reference copy.