     
 }
 
-open class MediaChannel: AliveMonitorable {
+// MARK: -
+
+open class MediaChannel {
     
     public enum State {
         case connecting

        self.configuration = configuration
        self.peerChannel = configuration.peerChannelType
            .init(configuration: configuration)

        /*
        aliveMonitor.addObject(signalingChannel)
        if let channel = signalingChannel.webSocketChannel {
            aliveMonitor.addObject(channel)
        }
        aliveMonitor.addObject(peerChannel)
        aliveMonitor.onChange(handler: self.handleChannelStateChanges)
 */
    }
    
    public func connect(timeout: Int = Configuration.defaultConnectionTimeout,


public class MediaChannelHandlers {
    
    public let onFailureHandler: Callback1<Error, Void> = Callback1(repeats: true)
    public let onMessageHandler: Callback1<SignalingMessage, Void> = Callback1(repeats: true)
    public let onAddStreamHandler: Callback1<MediaStream, Void> = Callback1(repeats: true)
    public let onRemoveStreamHandler: Callback1<MediaStream, Void> = Callback1(repeats: true)
    public let onEventHandler: Callback1<Event, Void> = Callback1(repeats: true)
    
    public func onFailure(handler: @escaping (Error) -> Void) {
        onFailureHandler.onExecute(handler: handler)
    }
    
    public func onMessage(handler: @escaping (SignalingMessage) -> Void) {
        onMessageHandler.onExecute(handler: handler)
    }
