Client can only recieve calls

I have a Middleman and a Messenger class. The Middleman is on the server. The Messenger is on the client.

But for some reason, it will not work. The client can recieve calls, but cannot send them.
Middleman class:

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- a class stores server data, can be requested and stored.
local Middleman = {}
Middleman.__index = Middleman

function Middleman.new(maxWait)
    local self = setmetatable({}, Middleman)
    self.data = {}
    self.maxWait = maxWait or 5;
    --self.waitingFor = {}
    self.logger = require(script.Parent.Logger).new()

    self.RawCalled = Instance.new("BindableEvent")
    self.Called = self.RawCalled.Event

    -- Players.PlayerAdded:Connect(function(x)
    --     self.waitingFor[x.UserId] = {}
    -- end)

    

    return self
end

function Middleman:Keep(x, y)
    self.data[x] = y
    self.logger.info("MMan", "Stored " .. x .. " as " .. y)

    return self;
end

function Middleman:Request(x)
    self.logger.info("MMan", "Sent " .. x)
    return self.data[x];
end

function Middleman:Discard(x)
    self.logger.info("MMan", "Discarded " .. x)
    self.data[x] = nil;
end

function Middleman:Call(x, ...)
    self.logger.info("MMan", "Fired " .. x)
    self.RawCalled:Fire(x, ...)
end

function Middleman:On(x, callback)
    self.Called:Connect(function(name, ...)
        if name == x then
            self.logger.info("MMan", "Contacted by " .. x)
            return callback(...)
        end
    end)
end

function Middleman:AskClient(player, name, ...)
    local Mote = ReplicatedStorage:FindFirstChild("Events").Middleman;

    Mote:InvokeClient(player, name, ...)
    --self.logger.info("MMan", "Asked " .. x.Name .. " to " .. y)
    
    --table.insert(self.waitingFor[x.UserId], y)
end

function Middleman:OnClientResponse(x, y, callback)
    local Mote = ReplicatedStorage:FindFirstChild("Events").Middleman;

    --                                        args
    Mote.OnServerInvoke = function(plr, ...)
        if plr.Name == x.Name then
            self.logger.info("MMan", "Contacted by " .. x.Name .. " to " .. y)
            local res = callback(...)

            print(...)
            return res
        end
    end
end

return Middleman;

Messenger class:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- responds from requests from middleman
local Messenger = {}
Messenger.__index = Messenger

function Messenger.new()
    local self = setmetatable({}, Messenger)
    self.logger = require(script.Parent.Logger).new()

    return self;
end

function Messenger:OnRequest(x, callback)
    local Mote = ReplicatedStorage:FindFirstChild("Events").Middleman;

    Mote.OnClientInvoke = function(name, ...)
        if name == x then
            return callback(...)
        end
    end
end

function Messenger:Ask(y, ...)
    local Mote = ReplicatedStorage:FindFirstChild("Events").Middleman;

    Mote:InvokeServer(y, ...)
    self.logger.info("Messenger", "Asked MMan to " .. y) 
end

return Messenger;

Nevermind, small issue on my end.