     
     //MARK: Properties
     
+    
     //INTERNAL PROPERTIES (allowed to modify)
     
     var delegate: SCServerDelegate?

    private lazy var registeredObserverForResource = [SCResourceModel : [(UInt64, NSData, UInt, UInt?)]]() //Token, Address, SequenceNumber, PrefferedBlock2SZX
    private lazy var block1UploadsForEndpoints = [NSData : [(SCResourceModel, UInt, NSData?)]]()
    
    //MARK: Internal Methods (allowed to use)
    
    init?(port: UInt16) {
        self.port = port
        super.init()
        
        if !setUpUdpSocket() {
            return nil
        }
    }
    
    //Call this method when your resource is ready to process a separate response. The concerned resource must return true for the method `willHandleDataAsynchronouslyForGet(...)`. It is necessary to pass the original message and the resource (both received in `willHandleDataAsynchronouslyForGet`) so that the server is able to retrieve the current context. Additionay, you have to pass the typical "values" tuple which form the response (as described in SCMessage -> SCResourceModel)
    

    
    //PRIVATE PROPERTIES
    
    private var udpSocket: GCDAsyncUdpSocket!
    private var udpSocketTag: Int = 0
    
