def METHOD_NAME(self, topic, callback):
    if not self._nats_client.is_connected:
        raise TTransportException(
            type=TTransportExceptionType.NOT_OPEN,
            message="Nats not connected!")
    if self.is_subscribed():
        raise TTransportException(
            type=TTransportExceptionType.ALREADY_OPEN,
            message="Already subscribed to nats topic!")
    self._sub_id = yield self._nats_client.subscribe_async(
        'frugal.{0}'.format(topic),
        queue=self._queue,
        cb=lambda message: callback(TMemoryBuffer(message.data[4:]))
    )
    self._is_subscribed = True