def extract_context(user, args)
      context = {}
      context[:user] = user
      if takes_parent_object
        context[:parent_object] = args.shift or raise ArgumentError, "No parent object given"
      end
      if takes_object
        context[:object] = args.shift or raise ArgumentError, "No object given"
      end
      OpenStruct.new(context)
    end
def extract_context(user, args)
      context = {}
      context[:user] = user
      if takes_parent_object
        context[:parent_object] = args.shift or raise ArgumentError, "No parent object given"
      end
      if takes_object
        context[:object] = args.shift or raise ArgumentError, "No object given"
      end
      OpenStruct.new(context)
    end
not *args so we can change the array reference