+sub clone_and_reset_deep {
+ my ($self) = @_;
+
+ my $clone = $self->clone_and_reset;
+ $clone->settings(map { $_->clone_and_reset } $self->settings);
+ $clone->name('');
+
+ return $clone;
+}
+
+sub flatten {
+ my ($self) = @_;
+
+ return map {
+ $_->key => $_->value
+ } $self->settings;
+}
+