diff --git a/demos/bernoulli_demo.py b/demos/bernoulli_demo.py
index 01f6f4135463b634702146af0da020c45bfbf37b..7efd68a31249aa4a3b321265b0615bf68756ce13 100644
--- a/demos/bernoulli_demo.py
+++ b/demos/bernoulli_demo.py
@@ -33,7 +33,7 @@ if __name__ == '__main__':
     # Two-dimensional regular grid with inhomogeneous exposure
     position_space = ift.RGSpace([512, 512])
 
-    # # Sphere with with uniform exposure
+    #  Sphere with uniform exposure
     # position_space = ift.HPSpace(128)
     # exposure = ift.Field.full(position_space, 1.)
 
diff --git a/demos/getting_started_2.py b/demos/getting_started_2.py
index ffdaf5f64a1de42c67b23129725ed19ea375935b..d878ec0df44e6c725431049ef42d2ebb4e6b2e7f 100644
--- a/demos/getting_started_2.py
+++ b/demos/getting_started_2.py
@@ -49,7 +49,7 @@ if __name__ == '__main__':
     position_space = ift.RGSpace([512, 512])
     exposure = get_2D_exposure()
 
-    # # Sphere with with uniform exposure
+    #  Sphere with uniform exposure
     # position_space = ift.HPSpace(128)
     # exposure = ift.Field.full(position_space, 1.)
 
@@ -70,7 +70,7 @@ if __name__ == '__main__':
     A = pd(a)
 
     # Set up a sky model
-    sky = HT.chain(ift.makeOp(A)).exp()
+    sky = ift.exp(HT.chain(ift.makeOp(A)))
 
     M = ift.DiagonalOperator(exposure)
     GR = ift.GeometryRemover(position_space)
@@ -99,7 +99,6 @@ if __name__ == '__main__':
     H, convergence = minimizer(H)
 
     # Plot results
-    result_sky = sky(H.position)
-    ift.plot(result_sky)
+    ift.plot(sky(H.position))
     ift.plot_finish()
     # FIXME PLOTTING
diff --git a/nifty5/minimization/energy.py b/nifty5/minimization/energy.py
index d2b53529ff1c056b0bca6de5015ecfed4a88ade5..8fd83882b2dfa7455abbd7abbac755ce82629f33 100644
--- a/nifty5/minimization/energy.py
+++ b/nifty5/minimization/energy.py
@@ -25,8 +25,8 @@ from ..utilities import NiftyMetaBase, memo
 class Energy(NiftyMetaBase()):
     """ Provides the functional used by minimization schemes.
 
-   The Energy object is an implementation of a scalar function including its
-   gradient and metric at some position.
+    The Energy object is an implementation of a scalar function including its
+    gradient and metric at some position.
 
     Parameters
     ----------
diff --git a/nifty5/multi/multi_field.py b/nifty5/multi/multi_field.py
index 652bd1700a5944811b3a4a6c946c48345b5c6aca..525e79cecf369f6a8a0eb01b3ad853b16a6e8950 100644
--- a/nifty5/multi/multi_field.py
+++ b/nifty5/multi/multi_field.py
@@ -221,17 +221,16 @@ class MultiField(object):
             return MultiField.from_dict({key: self[key] for key in subset})
 
     def unite(self, other):
+        if self._domain is other._domain:
+            return self + other
         return self.combine((self, other))
 
     @staticmethod
     def combine(fields):
         res = {}
         for f in fields:
-            for key in f.keys():
-                if key in res:
-                    res[key] = res[key]+f[key]
-                else:
-                    res[key] = f[key]
+            for key, val in f.items():
+                res[key] = res[key]+val if key in res else val
         return MultiField.from_dict(res)
 
 
diff --git a/nifty5/sugar.py b/nifty5/sugar.py
index 5f50fc6351b24454f852b06553c163a050f75361..dd290091dbbc1e7e8512f0b8d9682ecc7c4d2a66 100644
--- a/nifty5/sugar.py
+++ b/nifty5/sugar.py
@@ -261,7 +261,8 @@ for f in ["sqrt", "exp", "log", "tanh", "positive_tanh", "conjugate"]:
     def func(f):
         def func2(x):
             from .linearization import Linearization
-            if isinstance(x, (Field, MultiField, Linearization)):
+            from .operators.operator import Operator
+            if isinstance(x, (Field, MultiField, Linearization, Operator)):
                 return getattr(x, f)()
             else:
                 return getattr(np, f)(x)