code: func (e *Events) SubscribeTopic(since, until time.Time, ef *Filter) ([]eventtypes.Message, chan interface{}) {
  	eventSubscribers.Inc()
  	e.mu.Lock()
  
  	var topic func(m interface{}) bool
  	if ef != nil && ef.filter.Len() > 0 {
  		topic = func(m interface{}) bool { return ef.Include(m.(eventtypes.Message)) }
  	}
  
  	buffered := e.loadBufferedEvents(since, until, topic)
  
  	var ch chan interface{}
  	if topic != nil {
  		ch = e.pub.SubscribeTopic(topic)
  	} else {
  		// Subscribe to all events if there are no filters
  		ch = e.pub.Subscribe()
  	}
  
  	e.mu.Unlock()
  	return buffered, ch
  }
docs: // SubscribeTopic adds new listener to events, returns slice of 256 stored
  // last events, a channel in which you can expect new events (in form
  // of interface{}, so you need type assertion).