     
     /// Subscription queues for firing within delegates
     fileprivate var activationDidCompleteSingle = SynchronizedArray<ActivationHandler>()
-    fileprivate var didBecomeInactive = SynchronizedArray<EmptyObserver>()
-    fileprivate var didDeactivate = SynchronizedArray<EmptyObserver>()
-    fileprivate var stateDidChange = SynchronizedArray<EmptyObserver>()
-    fileprivate var reachabilityDidChange = SynchronizedArray<ReachabilityChangeObserver>()
-    fileprivate var didReceiveApplicationContext = SynchronizedArray<DictionaryObserver>()
-    fileprivate var didReceiveUserInfo = SynchronizedArray<DictionaryObserver>()
-    fileprivate var didReceiveMessage = SynchronizedArray<DidReceiveMessageObserver>()
+    public var didBecomeInactive = SynchronizedArray<EmptyObserver>()
+    public var didDeactivate = SynchronizedArray<EmptyObserver>()
+    public var stateDidChange = SynchronizedArray<EmptyObserver>()
+    public var reachabilityDidChange = SynchronizedArray<ReachabilityChangeObserver>()
+    public var didReceiveApplicationContext = SynchronizedArray<DictionaryObserver>()
+    public var didReceiveUserInfo = SynchronizedArray<DictionaryObserver>()
+    public var didReceiveMessage = SynchronizedArray<DidReceiveMessageObserver>()
 }
 
 // MARK: - Nested types


public class WatchSession: NSObject, WCSessionDelegate {

    /// Returns the singleton session object for the current device.
    fileprivate var sessionDefault: WCSession? {
        guard WCSession.isSupported() else { return nil }
        
        let session = WCSession.default()
        
        if session.delegate?.isEqual(self) != true {
            session.delegate = self
        }
        
        if session.activationState != .activated {
            session.activate()
        }
        
        return session
    }
    
    deinit {

    /// Request the one-time delivery of the user’s current location.
    ///
    /// - Parameter completion: The completion with the location object.
    func activate(completion: ActivationHandler? = nil) {
        guard let session = sessionDefault else { completion?(false); return }
        guard session.activationState != .activated else { completion?(true); return }
        if let completion = completion {
            activationDidCompleteSingle += completion
        }
        session.activate()
    }
}
