         
         //create coder
         
-        var coder = DCCoder()
+        var coder = FCCoder()
         coder.rootObject = object
         coder.output = output
         coder.objectCache = objectCache

    
    // MARK: Write Methode
    
    static func DCWriteBool(value: Bool, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(Bool))
    }
    
    // Int8
    static func DCWriteInt8(value: Int8, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(Int8))
    }
    
    // Unit8
    static func DCWriteUInt8(value: UInt8, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(UInt8))
    }
    
    // Int16
    static func DCWriteInt16(value: Int16, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(Int16))
    }
    
    // UInt16
    static func DCWriteUInt16(value: UInt16, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(UInt16))
    }
    
    // Int32
    static func DCWriteInt32(value: Int32, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(Int32))
    }
    
    // UInt32
    static func DCWriteUInt32(value: UInt32, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(UInt32))
    }
    
    // Int64
    static func DCWriteInt64(value: Int64, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(Int64))
    }
    
    // UInt64
    static func DCWriteUInt64(value: UInt64, output : NSMutableData) {
        
        var data  = value
        output.appendBytes(&data, length:sizeof(UInt64))

        return false

    }
    
}

// --------------------------------------------------------------------------------

extension NSObject {
    
    @objc public func FC_encodeWithCoder(aCoder: FCCoder) {
        // TODO
        
        if DataCoder.FCWriteObjectAlias(self, coder: aCoder) { return }
        
        //handle NSCoding
        //not support for "preferFastCoding"
        
        if self is NSCoding {
            DataCoder.FCWriteType(.FCTypeNSCodedObject, output: aCoder.output)
            DataCoder.FCWriteObject(NSStringFromClass(self.classForCoder), coder: aCoder)
            (self as! NSCoding).encodeWithCoder(aCoder)
            DataCoder.FCWriteType(.FCTypeNil, output: aCoder.output)
            aCoder.FCCacheWrittenObject(self)
            
        } else {
