diff --git a/resolve/__init__.py b/resolve/__init__.py
index 19433247bf696d0c8a817aaab98975edd4c01566..fadc803f26d1ea7207a44529460770d600f58865 100644
--- a/resolve/__init__.py
+++ b/resolve/__init__.py
@@ -18,7 +18,7 @@ from .plotter import MfPlotter, Plotter
 from .points import PointInserter
 from .polarization import polarization_matrix_exponential
 from .primary_beam import vla_beam
-from .response import MfResponse, ResponseDistributor, StokesIResponse
+from .response import MfResponse, ResponseDistributor, StokesIResponse, SingleResponse
 from .simple_operators import *
 from .util import (
     Reshaper,
diff --git a/resolve/observation.py b/resolve/observation.py
index 5aa10fec4a31ce9010e1e146c405d4e3b8e8f1dd..69735a556c9ccc6ab33efe716f6bb4192b86abe4 100644
--- a/resolve/observation.py
+++ b/resolve/observation.py
@@ -93,7 +93,7 @@ class Observation:
         f(file_name, **dct)
 
     @staticmethod
-    def load(file_name):
+    def load(file_name, lo_hi_index=None):
         dct = dict(np.load(file_name))
         antpos = []
         for ii in range(4):
@@ -103,12 +103,13 @@ class Observation:
             antpos.append(val)
         pol = Polarization.from_list(dct["polarization"])
         direction = Direction.from_list(dct["direction"])
+        slc = slice(None) if lo_hi_index is None else slice(*lo_hi_index)
         return Observation(
             AntennaPositions.from_list(antpos),
-            dct["vis"],
-            dct["weight"],
+            dct["vis"][..., slc],
+            dct["weight"][..., slc],
             pol,
-            dct["freq"],
+            dct["freq"][slc],
             direction,
         )
 
diff --git a/resolve/response.py b/resolve/response.py
index d303ea49403e71c78d8a688627a1b51298768bfb..89dbe37499bea61dc3ca1c2c314fa6f4d36da032 100644
--- a/resolve/response.py
+++ b/resolve/response.py
@@ -100,7 +100,7 @@ class MfResponse(ift.LinearOperator):
         Contains the the :class:`nifty7.RGSpace` for the positions.
     """
 
-    def __init__(self, observation, frequency_domain, position_domain):
+    def __init__(self, observation, frequency_domain, position_domain, verbose=True):
         my_assert_isinstance(observation, Observation)
         # FIXME Add polarization support
         my_asserteq(observation.npol, 1)
@@ -130,6 +130,7 @@ class MfResponse(ift.LinearOperator):
                 observation.freq[sel],
                 mask[0, :, sel].T,
                 sp,
+                verbose
             )
             self._r.append((band_index, sel, r))
         # Double check that all channels are written to
@@ -203,7 +204,7 @@ class FullResponse(ift.LinearOperator):
 
 
 class SingleResponse(ift.LinearOperator):
-    def __init__(self, domain, uvw, freq, mask, single_precision):
+    def __init__(self, domain, uvw, freq, mask, single_precision, verbose=True):
         # FIXME Currently only the response uses single_precision if possible.
         # Could be rolled out to the whole likelihood
         self._domain = ift.DomainTuple.make(domain)
@@ -225,7 +226,7 @@ class SingleResponse(ift.LinearOperator):
         self._vol = self._domain[0].scalar_dvol
         self._target_dtype = np.complex64 if single_precision else np.complex128
         self._domain_dtype = np.float32 if single_precision else np.float64
-        self._verbt, self._verbadj = True, True
+        self._verbt, self._verbadj = verbose, verbose
 
     def apply(self, x, mode):
         self._check_input(x, mode)