axes attr not updated properly
for example, with `convert`

this manifests when saving or copying data
diff --git a/WrightTools/data/_data.py b/WrightTools/data/_data.py
index dfcc401..0911f2d 100644
--- a/WrightTools/data/_data.py
+++ b/WrightTools/data/_data.py
@@ -205,6 +205,9 @@ class Data(Group):
     def _leaf(self):
         return '{0} {1}'.format(self.natural_name, self.shape)
 
+    def _on_axes_updated(self):
+        self.attrs['axes'] = [a.identity.encode() for a in self._axes]
+
     def _print_branch(self, prefix, level, depth, verbose):
 
         def print_leaves(prefix, lis, vline=True):
@@ -466,6 +469,7 @@ class Data(Group):
 
                     if verbose:
                         print('variable', var.natural_name, 'converted')
+        self._on_axes_updated()
 
     def create_channel(self, name, values=None, units=None, **kwargs):
         """Append a new channel.
@@ -592,7 +596,6 @@ class Data(Group):
         self.transpose(transpose_order, verbose=False)
 
     def flush(self):
-        self.attrs['axes'] = [a.identity.encode() for a in self._axes]
         super().flush()
 
     def get_nadir(self, channel=0):
@@ -1448,6 +1451,7 @@ class Data(Group):
         # finish
         self.flush()
         self._update_natural_namespace()
+        self._on_axes_updated()
 
     def zoom(self, factor, order=1, verbose=True):
         """Zoom the data array using spline interpolation of the requested order.
diff --git a/tests/group/save.py b/tests/group/save.py
index 4b6c24c..9dab949 100644
--- a/tests/group/save.py
+++ b/tests/group/save.py
@@ -121,6 +121,32 @@ def test_simple_save():
     os.remove(p)
 
 
+def test_propagate_units():
+    p = datasets.PyCMDS.wm_w2_w1_001
+    data = wt.data.from_PyCMDS(p)
+    data.convert('eV')
+    p = os.path.join(here, 'units')
+    p = data.save(p)
+    new = wt.open(p)
+    assert new.units == ('eV', 'eV', 'eV')
+    data.close()
+    new.close()
+    os.remove(p)
+
+
+def test_propagate_expressions():
+    p = datasets.PyCMDS.wm_w2_w1_001
+    data = wt.data.from_PyCMDS(p)
+    data.transform(['w1-wm', 'w2', 'w1'])
+    p = os.path.join(here, 'expressions')
+    p = data.save(p)
+    new = wt.open(p)
+    assert data.axis_expressions == new.axis_expressions
+    data.close()
+    new.close()
+    os.remove(p)
+
+
 # --- run -----------------------------------------------------------------------------------------
 
 
@@ -130,3 +156,5 @@ if __name__ == '__main__':
     test_save_nested()
     test_simple_copy()
     test_simple_save()
+    test_propagate_units()
+    test_propagate_expressions()
['tests/group/save.py', 'WrightTools/data/_data.py']