explained branch merging