diff --git a/madarrays/mad_array.py b/madarrays/mad_array.py
index 573c729d6e880c3a8f313820b06c988ec2802c59..f6762e8936f1a627bcd70662225022e316dd2a65 100644
--- a/madarrays/mad_array.py
+++ b/madarrays/mad_array.py
@@ -293,11 +293,10 @@ class MadArray(np.ndarray):
         self._complex_masking = getattr(obj, '_complex_masking', None)
         self._masked_indexing = getattr(obj, '_masked_indexing', None)
 
-    def __array_wrap__(self, obj, context=None):
-        return obj[()] if obj.shape == () else obj
-
     def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
 
+        print(method)
+
         args = []
         is_mad = []
         for input_ in inputs:
@@ -333,24 +332,12 @@ class MadArray(np.ndarray):
         if outputs:
             out_args = []
             for output in outputs:
-                if isinstance(output, MadArray):
-                    out_args.append(output.view(np.ndarray))
-                else:
-                    out_args.append(output)
+                out_args.append(output.view(np.ndarray))
             kwargs['out'] = tuple(out_args)
         else:
             outputs = (None,) * ufunc.nout
 
-        results = super().__array_ufunc__(ufunc, method, *args, **kwargs)
-
-        if results is NotImplemented:
-            return NotImplemented
-
-        if method == 'at':
-            return
-
-        if ufunc.nout == 1:
-            results = (results,)
+        results = (super().__array_ufunc__(ufunc, method, *args, **kwargs), )
 
         new_results = []
         for result, output in zip(results, outputs):