A decorator that returns a clone of the current object so that
    we can re-use the object for similar requests.

def _makes_clone(_func, *args, **kw):
    """
    A decorator that returns a clone of the current object so that
    we can re-use the object for similar requests.
    """
    self = args[0]._clone()
    _func(self, *args[1:], **kw)
    return self