 		     .arrayInt16, .arrayInt32,
 		     .arrayInt64, .arrayFloat,
 		     .arrayDouble, .arrayString,
-		     .arrayData:
+		     .arrayData, .arrayBool:
 			return true
 		default:
 			return false

		(type == Int32.self && dataType == .int32) ||
		(type == Float.self && dataType == .float) ||
		(type == Double.self && dataType == .double) ||
		((type == String.self || type == NSString.self) && dataType == .string) ||
		((type == Data.self || type == NSData.self) && dataType == .data)
}

		arrayDouble = 15,
		arrayString = 16,
		arrayData = 17
    
    // adding support to bool
    case bool = 18,
         arrayBool = 19
    

	public static func isFixedSize<T>(type: T.Type) -> Bool {
		return type == .int8 ||
			type == .int16 ||
			type == .int32 ||
			type == .int64 ||
			type == .float ||
			type == .double ||
            type == .bool
	}
	
	public static func isFixedSize(type: DataType) -> Bool {
		return type == .int8 ||
			type == .int16 ||
			type == .int32 ||
			type == .int64 ||
			type == .float ||
			type == .double ||
            type == .bool
	}

	public static func isSizeable<T>(type: T.Type) -> Bool {
		return type == .string ||
			type == .data
	}
	
	public static func isSizeable(type: DataType) -> Bool {
		return type == .string ||
			type == .data
	}

	public static func isArray(type: DataType) -> Bool {
