def METHOD_NAME(self, topics, predicate=predicate_true):
    """Subscribe to a topics, returning a queue for listening to subscribed messages.
    Returns a Subscription (queue) for receiving the messages, and a subscription id for unsubscribing later.
    Args:
        topics: sequence of topics (sequence of strings) or string representing the topics separated by periods.
            e.g. ['module', 'submodule', 'event'] or 'module.submodule.event' (equivalent)
        predicate: function taking a message as argument and returning True or False, False resulting to the message being dropped 
            only functions defined at the top level of a module accepted
    """
    new_channel = self.__manager.Queue()
    if isinstance(topics, Topic):
        topic = topics
    else:
        topic = Topic(topics)
    self.__subscribe(new_channel, topic, predicate)
    subscription_id = new_channel.get()
    return Subscription(self, new_channel, subscription_id)