async def subscribe_param(self, key: str, callback: CallbackFunc) -> Tuple[(Any, Callback)]:
    if (key not in self._callbacks):
        param_value = (await self._master_api_client.subscribe_param(key))
        self._cache[key] = param_value
    else:
        param_value = self._cache[key]
    cb = Callback(callback)
    self._callbacks[key].add(cb)
    return (param_value, cb)
async def subscribe_param(self, key: str, callback: CallbackFunc) -> Tuple[(Any, Callback)]:
    if (key not in self._callbacks):
        param_value = (await self._master_api_client.subscribe_param(key))
        self._cache[key] = param_value
    else:
        param_value = self._cache[key]
    cb = Callback(callback)
    self._callbacks[key].add(cb)
    return (param_value, cb)