code: func (bus *EventBus) doSubscribe(topic string, fn interface{}, handler *eventHandler) error {
  	bus.lock.Lock()
  	defer bus.lock.Unlock()
  	if !(reflect.TypeOf(fn).Kind() == reflect.Func) {
  		return fmt.Errorf("%s is not of type reflect.Func", reflect.TypeOf(fn).Kind())
  	}
  	bus.handlers[topic] = append(bus.handlers[topic], handler)
  	return nil
  }
docs: // doSubscribe handles the subscription logic and is utilized by the public Subscribe functions