I will rename getPathWithoutLeafNode to createCopyWithoutLeafNode. It's definitely not a getter so it's better to not have a getter name.