   ([init] (input init (gen-topic)))
   ([init topic]
    (map->Signal {:init init
-                 :subscribed-topics #{topic}})))
+                 :relayed-events #{topic}})))
 
 (defn constant
   [x]


(defn async
  [source]
  (let [topic source]
    (map->Signal {:init (:init source)
                  :event-emitter [source (fn [message]
                                           (when (fresh? message)
                                             (:value message)))]
                  :subscribed-topics #{topic}})))

(defn mergeseq
  [sigs]

  [x]
  (satisfies? SignalProtocol x))

(defn- relayed-events-message-emitter
  [topics]
  (let [topics (if (set? topics) topics (set topics))]
    (fn [prev event]
