                 var temperatureRaw  : Int16
                 var pressureRaw     : UInt16
                 static func fromRawValues(rawValues:([Int16], [UInt16])) -> Value? {
-                    return nil
+                    let (temperatureRaw, pressureRaw) = rawValues
+                    if temperatureRaw.count == 1 && pressureRaw.count == 1 {
+                        return Value(temperatureRaw:temperatureRaw[0], pressureRaw:pressureRaw[0])
+                    } else {
+                        return nil
+                    }
                 }
                 static func fromStrings(stringValues:Dictionary<String, String>) -> Value? {
-                    return nil
+                    let temperatureRaw = BlueCap.int16ValueFromStringValue("temperatureRaw", values:stringValues)
+                    let pressureRaw = BlueCap.uint16ValueFromStringValue("pressureRaw", values:stringValues)
+                    if temperatureRaw && pressureRaw {
+                        return Value(temperatureRaw:temperatureRaw!, pressureRaw:pressureRaw!)
+                    } else {
+                        return nil
+                    }
                 }
                 static func rawValueSizes() -> (Int, Int) {
-                    return (0, 0)
+                    return (sizeof(Int16), sizeof(UInt16))
                 }
                 var stringValues : Dictionary<String,String> {
-                return [:]
+                    return ["temperatureRaw":"\(temperatureRaw)", "pressureRaw":"\(pressureRaw)"]
                 }
                 func toRawValues() -> ([Int16], [UInt16]) {
-                    return ([], [])
+                    return ([temperatureRaw], [pressureRaw])
                 }
             }
         }
         struct Calibration {
-            static let uuid = "f000aa42-0451-4000-b000-000000000000"
+            static let uuid = "f000aa43-0451-4000-b000-000000000000"
             static let name = "Baraometer Calibration Data"
             struct Value : DeserializedPairStruct {
-                static func fromRawValues(rawValues:([Int16], [UInt16])) -> Value? {
-                    return nil
+                var c1 : UInt16
+                var c2 : UInt16
+                var c3 : UInt16
+                var c4 : UInt16
+                var c5 : Int16
+                var c6 : Int16
+                var c7 : Int16
+                var c8 : Int16
+                static func fromRawValues(rawValues:([UInt16], [Int16])) -> Value? {
+                    let (unsignedValues, signedValues) = rawValues
+                    if unsignedValues.count == 4 && signedValues.count == 4 {
+                        return Value(c1:unsignedValues[0], c2:unsignedValues[1], c3:unsignedValues[2], c4:unsignedValues[3],
+                                     c5:signedValues[0], c6:signedValues[1], c7:signedValues[2], c8:signedValues[3])
+                    } else {
+                        return nil
+                    }
                 }
                 static func fromStrings(stringValues:Dictionary<String, String>) -> Value? {
-                    return nil
+                    let c1 = BlueCap.uint16ValueFromStringValue("c1", values:stringValues)
+                    let c2 = BlueCap.uint16ValueFromStringValue("c2", values:stringValues)
+                    let c3 = BlueCap.uint16ValueFromStringValue("c3", values:stringValues)
+                    let c4 = BlueCap.uint16ValueFromStringValue("c4", values:stringValues)
+                    let c5 = BlueCap.int16ValueFromStringValue("c5", values:stringValues)
+                    let c6 = BlueCap.int16ValueFromStringValue("c6", values:stringValues)
+                    let c7 = BlueCap.int16ValueFromStringValue("c7", values:stringValues)
+                    let c8 = BlueCap.int16ValueFromStringValue("c8", values:stringValues)
+                    if c1 && c2 && c3 && c4 && c5 && c6 && c7 && c8 {
+                        return Value(c1:c1!, c2:c2!, c3:c3!, c4:c4!, c5:c5!, c6:c6!, c7:c7!, c8:c8!)
+                    } else {
+                        return nil
+                    }
                 }
                 static func rawValueSizes() -> (Int, Int) {
-                    return (0, 0)
+                    return (4*sizeof(UInt16), 4*sizeof(Int16))
                 }
                 var stringValues : Dictionary<String,String> {
-                return [:]
-                }
-                func toRawValues() -> ([Int16], [UInt16]) {
-                    return ([], [])
+                return ["c1":"\(c1)", "c2":"\(c2)", "c3":"\(c3)", "c4":"\(c4)","c5":"\(c5)", "c6":"\(c6)","c7":"\(c7)","c8":"\(c8)"]
+                }
+                func toRawValues() -> ([UInt16], [Int16]) {
+                    return ([c1,c2,c3,c4], [c5,c6,c7,c8])
                 }
             }
         }
         struct Enabled {
-            static let uuid = "f000aa43-0451-4000-b000-000000000000"
+            static let uuid = "f000aa42-0451-4000-b000-000000000000"
             static let name = "Baraometer Enabled"
             enum Value : UInt8, DeserializedEnum {
                 case No         = 0

            // Gyroscope Data
            serviceProfile.addCharacteristic(StructCharacteristicProfile<TISensorTag.GyroscopeService.Data.Value>(uuid:TISensorTag.GyroscopeService.Data.uuid, name:TISensorTag.GyroscopeService.Data.name, fromEndianness:.Little)
                {(characteristicProfile) in
                    characteristicProfile.initialValue = NSData.serializeToLittleEndian(TISensorTag.GyroscopeService.Data.Value.fromRawValues([-24, -219, -23]))
                    characteristicProfile.properties = CBCharacteristicProperties.Read | CBCharacteristicProperties.Notify
                })
            // Gyroscope Enables

            // Accelerometer Data
            serviceProfile.addCharacteristic(StructCharacteristicProfile<TISensorTag.AccelerometerService.Data.Value>(uuid:TISensorTag.AccelerometerService.Data.uuid, name:TISensorTag.AccelerometerService.Data.name)
                {(characteristicProfile) in
                    characteristicProfile.initialValue = NSData.serialize(TISensorTag.AccelerometerService.Data.Value.fromRawValues([-2, 6, 69])!.toRawValues())
                    characteristicProfile.properties = CBCharacteristicProperties.Read | CBCharacteristicProperties.Notify
            })
            // Accelerometer Enabled
