 //            }
         }
     }
-    
-
+}
+
+extension Photon
+{
     func refreshDevices() -> Promise<Set<String>>
     {
         return Promise { fulfill, reject in

}


class Photon
{
    internal let particleDevice: ParticleDevice! // Reference to Particle-SDK device object
    var devices: Set<String>?           // Cached list of device names exposed by Photon
    var supported: Set<String>?         // Cached list of supported activities
    var activities: [String: String]?   // Optional list of current activities and state
    var publish: String                 // Publish event name that this device monitors


    var name: String
    {
        get {

typealias CompletionPassingSet = (Set<String>) -> Void
typealias CompletionPassingDict = ([String: String]) -> Void


// This protocol represents each microcontroller
// Currently these are Particle.io Photons, but they
// might be something different in the future.
protocol HwController
{
    var devices: Set<String>?           { get }
    var supported: Set<String>?         { get }
    var activities: [String: String]?   { get }
    var publish: String                 { get }
    var name: String                    { get }
    init(device: ParticleDevice)
    func refresh() -> Promise<Void>
}

enum PhotonError : Error
{
