diff --git a/.pubnub.yml b/.pubnub.yml
index a3e3f9af2..f69a0a3e3 100644
--- a/.pubnub.yml
+++ b/.pubnub.yml
@@ -1,9 +1,14 @@
---
name: objective-c
scm: github.com/pubnub/objective-c
-version: "5.4.0"
+version: "5.4.1"
schema: 1
changelog:
+ - date: 2024-04-30
+ version: v5.4.1
+ changes:
+ - type: bug
+ text: "Match `include` folder content to the `import` in source code."
- date: 2024-04-16
version: v5.4.0
changes:
@@ -1339,7 +1344,7 @@ sdks:
- distribution-type: source
distribution-repository: GitHub release
package-name: PubNub.framework
- location: https://github.com/pubnub/objective-c/archive/refs/tags/v5.4.0.zip
+ location: https://github.com/pubnub/objective-c/archive/refs/tags/v5.4.1.zip
supported-platforms:
supported-operating-systems:
macOS:
@@ -1400,7 +1405,7 @@ sdks:
- distribution-type: library
distribution-repository: GitHub release
package-name: PubNub.ios.xcframework.tar.gz
- location: https://github.com/pubnub/objective-c/releases/download/v5.4.0/PubNub.ios.xcframework.tar.gz
+ location: https://github.com/pubnub/objective-c/releases/download/v5.4.1/PubNub.ios.xcframework.tar.gz
supported-platforms:
supported-operating-systems:
iOS:
@@ -1419,7 +1424,7 @@ sdks:
- distribution-type: library
distribution-repository: GitHub release
package-name: PubNub.macos.framework.tar.gz
- location: https://github.com/pubnub/objective-c/releases/download/v5.4.0/PubNub.macos.framework.tar.gz
+ location: https://github.com/pubnub/objective-c/releases/download/v5.4.1/PubNub.macos.framework.tar.gz
supported-platforms:
supported-operating-systems:
macOS:
@@ -1435,7 +1440,7 @@ sdks:
- distribution-type: library
distribution-repository: GitHub release
package-name: PubNub.tvos.xcframework.tar.gz
- location: https://github.com/pubnub/objective-c/releases/download/v5.4.0/PubNub.tvos.xcframework.tar.gz
+ location: https://github.com/pubnub/objective-c/releases/download/v5.4.1/PubNub.tvos.xcframework.tar.gz
supported-platforms:
supported-operating-systems:
tvOS:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e10d5f147..f65563360 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+## v5.4.1
+April 30 2024
+
+#### Fixed
+- Match `include` folder content to the `import` in source code.
+
## v5.4.0
April 16 2024
diff --git a/Framework/PubNub Framework.xcodeproj/project.pbxproj b/Framework/PubNub Framework.xcodeproj/project.pbxproj
index 6acbb6ec8..1b9af63fd 100644
--- a/Framework/PubNub Framework.xcodeproj/project.pbxproj
+++ b/Framework/PubNub Framework.xcodeproj/project.pbxproj
@@ -1832,6 +1832,11 @@
A5105B59238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; };
A5105B5A238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; };
A5105B5C238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; };
+ A51B49E02BDA7806008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E3B9FF2B2F669200D3AA18 /* PNRequestRetryConfiguration+Private.h */; };
+ A51B49E12BDA7806008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E3B9FF2B2F669200D3AA18 /* PNRequestRetryConfiguration+Private.h */; };
+ A51B49E22BDA7807008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E3B9FF2B2F669200D3AA18 /* PNRequestRetryConfiguration+Private.h */; };
+ A51B49E32BDA7808008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E3B9FF2B2F669200D3AA18 /* PNRequestRetryConfiguration+Private.h */; };
+ A51B49E42BDA7809008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E3B9FF2B2F669200D3AA18 /* PNRequestRetryConfiguration+Private.h */; };
A523692924A2270200656C19 /* PNAES+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A523692824A2270200656C19 /* PNAES+Private.h */; };
A523692A24A2270200656C19 /* PNAES+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A523692824A2270200656C19 /* PNAES+Private.h */; };
A523692B24A2270200656C19 /* PNAES+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A523692824A2270200656C19 /* PNAES+Private.h */; };
@@ -4382,6 +4387,7 @@
A56865B9230173030014E17C /* PNChannelMetadataChangeParser.h in Headers */,
A57A30DA238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */,
7951954326BD44E9001E308C /* PubNub+PAM.h in Headers */,
+ A51B49E02BDA7806008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */,
7915825C1BD709C60084FC70 /* PNChannelGroupsResult.h in Headers */,
79E20D151C8AEC3A001BC9CC /* PNEnvelopeInformation.h in Headers */,
A55CA69D2397389100B24E02 /* PNKeychain+Private.h in Headers */,
@@ -4675,6 +4681,7 @@
A56865BB230173030014E17C /* PNChannelMetadataChangeParser.h in Headers */,
A57A30DC238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */,
7951954526BD44E9001E308C /* PubNub+PAM.h in Headers */,
+ A51B49E22BDA7807008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */,
791583071BD709D10084FC70 /* PNEventsListener.h in Headers */,
791583051BD709D10084FC70 /* PNChannelGroupsResult.h in Headers */,
A55CA69F2397389100B24E02 /* PNKeychain+Private.h in Headers */,
@@ -5055,6 +5062,7 @@
A57A30F6238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */,
798842741C18F1FB003E8948 /* PNStatus+Private.h in Headers */,
798842321C18F0AC003E8948 /* PubNub+Subscribe.h in Headers */,
+ A51B49E42BDA7809008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */,
A57A30DF238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */,
797ABBA624C4148C0008CA1E /* PNBasePublishRequest.h in Headers */,
7988422C1C18F088003E8948 /* PubNub+Presence.h in Headers */,
@@ -5260,6 +5268,7 @@
A56865BA230173030014E17C /* PNChannelMetadataChangeParser.h in Headers */,
A57A30DB238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */,
7951954426BD44E9001E308C /* PubNub+PAM.h in Headers */,
+ A51B49E12BDA7806008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */,
79A8BC741C58F93900015BDE /* PNEventsListener.h in Headers */,
79A8BC721C58F93900015BDE /* PNChannelGroupsResult.h in Headers */,
A55CA69E2397389100B24E02 /* PNKeychain+Private.h in Headers */,
@@ -5553,6 +5562,7 @@
A56865BC230173030014E17C /* PNChannelMetadataChangeParser.h in Headers */,
A57A30DD238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */,
7951954626BD44E9001E308C /* PubNub+PAM.h in Headers */,
+ A51B49E32BDA7808008C3370 /* PNRequestRetryConfiguration+Private.h in Headers */,
79CBB1661BD03DE4001FC34D /* PNEventsListener.h in Headers */,
79CBB1261BD03DE4001FC34D /* PNChannelGroupsResult.h in Headers */,
A55CA6A02397389100B24E02 /* PNKeychain+Private.h in Headers */,
diff --git a/Framework/PubNub/Info.plist b/Framework/PubNub/Info.plist
index 8f2ecce51..49276f445 100644
--- a/Framework/PubNub/Info.plist
+++ b/Framework/PubNub/Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
PubNub
CFBundleGetInfoString
- 5.4.0
+ 5.4.1
CFBundleIdentifier
com.pubnub.pubnub-objc
CFBundleInfoDictionaryVersion
@@ -17,11 +17,11 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 5.4.0
+ 5.4.1
CFBundleSignature
????
CFBundleVersion
- 5.4.0
+ 5.4.1
NSHumanReadableCopyright
© 2010 - 2020 PubNub, Inc.
NSPrincipalClass
diff --git a/Framework/PubNub/PubNub-iOS-Info.plist b/Framework/PubNub/PubNub-iOS-Info.plist
index 8f2ecce51..49276f445 100644
--- a/Framework/PubNub/PubNub-iOS-Info.plist
+++ b/Framework/PubNub/PubNub-iOS-Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
PubNub
CFBundleGetInfoString
- 5.4.0
+ 5.4.1
CFBundleIdentifier
com.pubnub.pubnub-objc
CFBundleInfoDictionaryVersion
@@ -17,11 +17,11 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 5.4.0
+ 5.4.1
CFBundleSignature
????
CFBundleVersion
- 5.4.0
+ 5.4.1
NSHumanReadableCopyright
© 2010 - 2020 PubNub, Inc.
NSPrincipalClass
diff --git a/Framework/PubNub/PubNub-tvOS-Info.plist b/Framework/PubNub/PubNub-tvOS-Info.plist
index 8f2ecce51..49276f445 100644
--- a/Framework/PubNub/PubNub-tvOS-Info.plist
+++ b/Framework/PubNub/PubNub-tvOS-Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
PubNub
CFBundleGetInfoString
- 5.4.0
+ 5.4.1
CFBundleIdentifier
com.pubnub.pubnub-objc
CFBundleInfoDictionaryVersion
@@ -17,11 +17,11 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 5.4.0
+ 5.4.1
CFBundleSignature
????
CFBundleVersion
- 5.4.0
+ 5.4.1
NSHumanReadableCopyright
© 2010 - 2020 PubNub, Inc.
NSPrincipalClass
diff --git a/Framework/PubNub/PubNub-watchOS-Info.plist b/Framework/PubNub/PubNub-watchOS-Info.plist
index 8f2ecce51..49276f445 100644
--- a/Framework/PubNub/PubNub-watchOS-Info.plist
+++ b/Framework/PubNub/PubNub-watchOS-Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
PubNub
CFBundleGetInfoString
- 5.4.0
+ 5.4.1
CFBundleIdentifier
com.pubnub.pubnub-objc
CFBundleInfoDictionaryVersion
@@ -17,11 +17,11 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 5.4.0
+ 5.4.1
CFBundleSignature
????
CFBundleVersion
- 5.4.0
+ 5.4.1
NSHumanReadableCopyright
© 2010 - 2020 PubNub, Inc.
NSPrincipalClass
diff --git a/Framework/scripts/export_for_spm.sh b/Framework/scripts/export_for_spm.sh
index b175a1474..728712e28 100755
--- a/Framework/scripts/export_for_spm.sh
+++ b/Framework/scripts/export_for_spm.sh
@@ -5,6 +5,7 @@ set -e
WORKING_DIRECTORY="$(pwd)"
SOURCES_FOLDER="$1"
[[ "$2" == public-only ]] && PUBLIC_ONLY=1 || PUBLIC_ONLY=0
+PRIVATE_HEADERS=()
PUBLIC_HEADERS=()
ALL_HEADERS=()
FILES=()
@@ -61,32 +62,35 @@ gather_imported_headers_in_file() {
}
-
if [[ $PUBLIC_ONLY == 1 ]]; then
+ regex=".*Private.h"
# Retrieve list of potentially public headers.
while IFS='' read -r HEADER_PATH; do
RELATIVE_PATH="${HEADER_PATH#"$WORKING_DIRECTORY/$SOURCES_FOLDER/"}"
FILENAME="$(echo "$RELATIVE_PATH" | rev | cut -d/ -f1 | rev)"
FILES+=( "$FILENAME:$RELATIVE_PATH" )
ALL_HEADERS+=("$RELATIVE_PATH")
+ [[ "$RELATIVE_PATH" =~ $regex ]] && PRIVATE_HEADERS+=("$RELATIVE_PATH")
done <<< "$(find "$WORKING_DIRECTORY/$SOURCES_FOLDER" -type f ! \( -name "*.m" -o -name ".DS_Store" -o -name "*Private.h" \))"
# Scan for public headers
gather_imported_headers_in_file "$SOURCES_FOLDER/PubNub.h"
else
+ regex=".*Private.h"
# Retrieve list of all headers.
while IFS='' read -r HEADER_PATH; do
RELATIVE_PATH="${HEADER_PATH#"$WORKING_DIRECTORY/$SOURCES_FOLDER/"}"
FILENAME="$(echo "$RELATIVE_PATH" | rev | cut -d/ -f1 | rev)"
FILES+=( "$FILENAME:$RELATIVE_PATH" )
ALL_HEADERS+=("$RELATIVE_PATH")
+ [[ "$RELATIVE_PATH" =~ $regex ]] && PRIVATE_HEADERS+=("$RELATIVE_PATH")
done <<< "$(find "$WORKING_DIRECTORY/$SOURCES_FOLDER" -type f ! \( -name "*.m" -o -name ".DS_Store" \))"
fi
# Create required folders structure.
! [[ -d "$WORKING_DIRECTORY/Sources" ]] && mkdir -p "$WORKING_DIRECTORY/Sources"
-! [[ -d "$1/include" ]] && mkdir -p "$1/include"
+! [[ -d "$1/include" ]] && mkdir -p "$1/include/PubNub"
# Create symbolic link to Objective-C SDK source files.
@@ -96,8 +100,23 @@ popd
# Create symbolic links for public headers
-cd "$1/include"
-! [[ -e "PubNub.h" ]] && ln -s "../PubNub.h"
+cd "$1/include/PubNub"
+
+if [[ $PUBLIC_ONLY == 1 ]]; then
+ for HEADER_PATH in "${PUBLIC_HEADERS[@]}"; do
+ FILENAME="$(echo "$HEADER_PATH" | rev | cut -d/ -f1 | rev)"
+ ! [[ -e "$FILENAME" ]] && ln -s "../../$HEADER_PATH"
+ done
+else
+ for HEADER_PATH in "${ALL_HEADERS[@]}"; do
+ FILENAME="$(echo "$HEADER_PATH" | rev | cut -d/ -f1 | rev)"
+ ! [[ -e "$FILENAME" ]] && ln -s "../../$HEADER_PATH" "$FILENAME"
+ done
+fi
+
+[[ -e "PubNub.h" ]] && rm "PubNub.h"
+
+cd "../"
if [[ $PUBLIC_ONLY == 1 ]]; then
for HEADER_PATH in "${PUBLIC_HEADERS[@]}"; do
@@ -109,4 +128,6 @@ else
FILENAME="$(echo "$HEADER_PATH" | rev | cut -d/ -f1 | rev)"
! [[ -e "$FILENAME" ]] && ln -s "../$HEADER_PATH" "$FILENAME"
done
-fi
\ No newline at end of file
+fi
+
+[[ -e "PubNub.h" ]] && rm "PubNub.h"
\ No newline at end of file
diff --git a/Package.swift b/Package.swift
index 42e84f7af..3705a7e1b 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,4 +1,4 @@
-// swift-tools-version:5.0
+// swift-tools-version:5.3
//
// Package.swift
//
@@ -42,21 +42,18 @@ let package = Package(
.watchOS(.v4)
],
products: [
- // Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "PubNub",
targets: ["PubNub"]
)
],
- dependencies: [
- // Dependencies declare other packages that this package depends on.
- ],
+ dependencies: [],
targets: [
- // Targets are the basic building blocks of a package. A target can define a module or a test suite.
- // Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "PubNub",
- dependencies: []
+ dependencies: [],
+ path: "Sources/PubNub",
+ resources: [.copy("PrivacyInfo.xcprivacy")]
)
],
swiftLanguageVersions: [.v5]
diff --git a/PubNub.podspec b/PubNub.podspec
index 21f6fb988..f8c337ca3 100644
--- a/PubNub.podspec
+++ b/PubNub.podspec
@@ -9,7 +9,7 @@
Pod::Spec.new do |spec|
spec.name = 'PubNub'
- spec.version = '5.4.0'
+ spec.version = '5.4.1'
spec.summary = 'The PubNub Real-Time Network. Build real-time apps quickly and scale them globally.'
spec.homepage = 'https://github.com/pubnub/objective-c'
diff --git a/PubNub/Misc/PNConstants.h b/PubNub/Misc/PNConstants.h
index 03d232b91..682978ac8 100644
--- a/PubNub/Misc/PNConstants.h
+++ b/PubNub/Misc/PNConstants.h
@@ -15,7 +15,7 @@
#pragma mark General information constants
// Stores client library version number
-static NSString * const kPNLibraryVersion = @"5.4.0";
+static NSString * const kPNLibraryVersion = @"5.4.1";
// Stores information about SDK codebase
static NSString * const kPNCommit = @"fd5c7ed678527fce07eaf7eb162935caf1bfd303";
diff --git a/PubNub/Network/PNReachability.m b/PubNub/Network/PNReachability.m
index ca6ab8781..95dd50cd8 100644
--- a/PubNub/Network/PNReachability.m
+++ b/PubNub/Network/PNReachability.m
@@ -5,8 +5,11 @@
#import "PNReachability.h"
#import "PubNub+CorePrivate.h"
#import "PNConfiguration.h"
+#import "PNTimeResult.h"
+#import "PNStructures.h"
+#import "PubNub+Time.h"
+#import "PubNub+Core.h"
#import "PNLogMacro.h"
-#import "PubNub.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/PubNub/include/PNRequestRetryConfiguration+Private.h b/PubNub/include/PNRequestRetryConfiguration+Private.h
new file mode 120000
index 000000000..3e5314154
--- /dev/null
+++ b/PubNub/include/PNRequestRetryConfiguration+Private.h
@@ -0,0 +1 @@
+../Network/PNRequestRetryConfiguration+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PNRequestRetryConfiguration.h b/PubNub/include/PNRequestRetryConfiguration.h
new file mode 120000
index 000000000..d2375ef33
--- /dev/null
+++ b/PubNub/include/PNRequestRetryConfiguration.h
@@ -0,0 +1 @@
+../Network/PNRequestRetryConfiguration.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub.h b/PubNub/include/PubNub.h
deleted file mode 120000
index 72de257e4..000000000
--- a/PubNub/include/PubNub.h
+++ /dev/null
@@ -1 +0,0 @@
-../PubNub.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSArray+PNMap.h b/PubNub/include/PubNub/NSArray+PNMap.h
new file mode 120000
index 000000000..240b108fe
--- /dev/null
+++ b/PubNub/include/PubNub/NSArray+PNMap.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSArray+PNMap.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSDateFormatter+PNCacheable.h b/PubNub/include/PubNub/NSDateFormatter+PNCacheable.h
new file mode 120000
index 000000000..c802dd651
--- /dev/null
+++ b/PubNub/include/PubNub/NSDateFormatter+PNCacheable.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSDateFormatter+PNCacheable.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSInputStream+PNCrypto.h b/PubNub/include/PubNub/NSInputStream+PNCrypto.h
new file mode 120000
index 000000000..cb4c473a6
--- /dev/null
+++ b/PubNub/include/PubNub/NSInputStream+PNCrypto.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSInputStream+PNCrypto.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSInputStream+PNURL.h b/PubNub/include/PubNub/NSInputStream+PNURL.h
new file mode 120000
index 000000000..da54cb9c6
--- /dev/null
+++ b/PubNub/include/PubNub/NSInputStream+PNURL.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSInputStream+PNURL.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfiguration.h b/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfiguration.h
new file mode 120000
index 000000000..5515b12b7
--- /dev/null
+++ b/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfiguration.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSURLSessionConfiguration+PNConfiguration.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfigurationPrivate.h b/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfigurationPrivate.h
new file mode 120000
index 000000000..3dc5948bf
--- /dev/null
+++ b/PubNub/include/PubNub/NSURLSessionConfiguration+PNConfigurationPrivate.h
@@ -0,0 +1 @@
+../../Misc/Categories/NSURLSessionConfiguration+PNConfigurationPrivate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAES+Private.h b/PubNub/include/PubNub/PNAES+Private.h
new file mode 120000
index 000000000..d94b9765f
--- /dev/null
+++ b/PubNub/include/PubNub/PNAES+Private.h
@@ -0,0 +1 @@
+../../Data/PNAES+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAES.h b/PubNub/include/PubNub/PNAES.h
new file mode 120000
index 000000000..fba662d37
--- /dev/null
+++ b/PubNub/include/PubNub/PNAES.h
@@ -0,0 +1 @@
+../../Data/PNAES.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAESCBCCryptor+Private.h b/PubNub/include/PubNub/PNAESCBCCryptor+Private.h
new file mode 120000
index 000000000..326993960
--- /dev/null
+++ b/PubNub/include/PubNub/PNAESCBCCryptor+Private.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Cryptors/AES/PNAESCBCCryptor+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAESCBCCryptor.h b/PubNub/include/PubNub/PNAESCBCCryptor.h
new file mode 120000
index 000000000..7ca1c71cf
--- /dev/null
+++ b/PubNub/include/PubNub/PNAESCBCCryptor.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Cryptors/AES/PNAESCBCCryptor.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPICallBuilder+Private.h b/PubNub/include/PubNub/PNAPICallBuilder+Private.h
new file mode 120000
index 000000000..0d12342ed
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPICallBuilder+Private.h
@@ -0,0 +1 @@
+../../Data/Builders/PNAPICallBuilder+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPICallBuilder.h b/PubNub/include/PubNub/PNAPICallBuilder.h
new file mode 120000
index 000000000..f891f0b97
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/PNAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSAPICallBuilder.h b/PubNub/include/PubNub/PNAPNSAPICallBuilder.h
new file mode 120000
index 000000000..a0ba98ba6
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/APNS/PNAPNSAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSAuditAPICallBuilder.h b/PubNub/include/PubNub/PNAPNSAuditAPICallBuilder.h
new file mode 120000
index 000000000..4c3147e9c
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSAuditAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/APNS/PNAPNSAuditAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSEnabledChannelsResult.h b/PubNub/include/PubNub/PNAPNSEnabledChannelsResult.h
new file mode 120000
index 000000000..2e3c3adbd
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSEnabledChannelsResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNAPNSEnabledChannelsResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSModificationAPICallBuilder.h b/PubNub/include/PubNub/PNAPNSModificationAPICallBuilder.h
new file mode 120000
index 000000000..93009830a
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSModificationAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/APNS/PNAPNSModificationAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationConfiguration+Private.h b/PubNub/include/PubNub/PNAPNSNotificationConfiguration+Private.h
new file mode 120000
index 000000000..0cbcbd3f3
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationConfiguration+Private.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationConfiguration+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationConfiguration.h b/PubNub/include/PubNub/PNAPNSNotificationConfiguration.h
new file mode 120000
index 000000000..5fa908a78
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationConfiguration.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationConfiguration.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationPayload+Private.h b/PubNub/include/PubNub/PNAPNSNotificationPayload+Private.h
new file mode 120000
index 000000000..fbaf6ff80
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationPayload+Private.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationPayload+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationPayload.h b/PubNub/include/PubNub/PNAPNSNotificationPayload.h
new file mode 120000
index 000000000..d7be06f4d
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationPayload.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationPayload.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationTarget+Private.h b/PubNub/include/PubNub/PNAPNSNotificationTarget+Private.h
new file mode 120000
index 000000000..3d8d96f39
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationTarget+Private.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationTarget+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAPNSNotificationTarget.h b/PubNub/include/PubNub/PNAPNSNotificationTarget.h
new file mode 120000
index 000000000..78f2d93c5
--- /dev/null
+++ b/PubNub/include/PubNub/PNAPNSNotificationTarget.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/APNS/PNAPNSNotificationTarget.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAcknowledgmentStatus.h b/PubNub/include/PubNub/PNAcknowledgmentStatus.h
new file mode 120000
index 000000000..2f1a4bc0e
--- /dev/null
+++ b/PubNub/include/PubNub/PNAcknowledgmentStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNAcknowledgmentStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAddMessageActionAPICallBuilder.h b/PubNub/include/PubNub/PNAddMessageActionAPICallBuilder.h
new file mode 120000
index 000000000..8b4cb14c4
--- /dev/null
+++ b/PubNub/include/PubNub/PNAddMessageActionAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Actions/Message/PNAddMessageActionAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAddMessageActionParser.h b/PubNub/include/PubNub/PNAddMessageActionParser.h
new file mode 120000
index 000000000..3d5ac05c0
--- /dev/null
+++ b/PubNub/include/PubNub/PNAddMessageActionParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Actions/Message/PNAddMessageActionParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAddMessageActionRequest.h b/PubNub/include/PubNub/PNAddMessageActionRequest.h
new file mode 120000
index 000000000..95249ad8e
--- /dev/null
+++ b/PubNub/include/PubNub/PNAddMessageActionRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Actions/Message/PNAddMessageActionRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAddMessageActionStatus.h b/PubNub/include/PubNub/PNAddMessageActionStatus.h
new file mode 120000
index 000000000..e69f223a7
--- /dev/null
+++ b/PubNub/include/PubNub/PNAddMessageActionStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNAddMessageActionStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAddPushNotificationsRequest.h b/PubNub/include/PubNub/PNAddPushNotificationsRequest.h
new file mode 120000
index 000000000..6e442f74c
--- /dev/null
+++ b/PubNub/include/PubNub/PNAddPushNotificationsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Push Notifications/PNAddPushNotificationsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNArray.h b/PubNub/include/PubNub/PNArray.h
new file mode 120000
index 000000000..ac1ea9a92
--- /dev/null
+++ b/PubNub/include/PubNub/PNArray.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNArray.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNAuditPushNotificationsRequest.h b/PubNub/include/PubNub/PNAuditPushNotificationsRequest.h
new file mode 120000
index 000000000..4bcbe0be4
--- /dev/null
+++ b/PubNub/include/PubNub/PNAuditPushNotificationsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Push Notifications/PNAuditPushNotificationsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseMessageActionRequest+Private.h b/PubNub/include/PubNub/PNBaseMessageActionRequest+Private.h
new file mode 120000
index 000000000..0941c28bf
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseMessageActionRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Actions/Message/PNBaseMessageActionRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseMessageActionRequest.h b/PubNub/include/PubNub/PNBaseMessageActionRequest.h
new file mode 120000
index 000000000..c7e570077
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseMessageActionRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Actions/Message/PNBaseMessageActionRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseNotificationPayload+Private.h b/PubNub/include/PubNub/PNBaseNotificationPayload+Private.h
new file mode 120000
index 000000000..b1313fba7
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseNotificationPayload+Private.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/PNBaseNotificationPayload+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseNotificationPayload.h b/PubNub/include/PubNub/PNBaseNotificationPayload.h
new file mode 120000
index 000000000..96a335eff
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseNotificationPayload.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/PNBaseNotificationPayload.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseObjectsMembershipRequest+Private.h b/PubNub/include/PubNub/PNBaseObjectsMembershipRequest+Private.h
new file mode 120000
index 000000000..2f8f0f018
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseObjectsMembershipRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNBaseObjectsMembershipRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseObjectsMembershipRequest.h b/PubNub/include/PubNub/PNBaseObjectsMembershipRequest.h
new file mode 120000
index 000000000..f34266958
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseObjectsMembershipRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNBaseObjectsMembershipRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseObjectsRequest+Private.h b/PubNub/include/PubNub/PNBaseObjectsRequest+Private.h
new file mode 120000
index 000000000..10daabe3e
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseObjectsRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/PNBaseObjectsRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBaseObjectsRequest.h b/PubNub/include/PubNub/PNBaseObjectsRequest.h
new file mode 120000
index 000000000..5c7c32ce7
--- /dev/null
+++ b/PubNub/include/PubNub/PNBaseObjectsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/PNBaseObjectsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBasePublishRequest+Private.h b/PubNub/include/PubNub/PNBasePublishRequest+Private.h
new file mode 120000
index 000000000..d9f613bfb
--- /dev/null
+++ b/PubNub/include/PubNub/PNBasePublishRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Publish/PNBasePublishRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBasePublishRequest.h b/PubNub/include/PubNub/PNBasePublishRequest.h
new file mode 120000
index 000000000..1cd9fd659
--- /dev/null
+++ b/PubNub/include/PubNub/PNBasePublishRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Publish/PNBasePublishRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNBasePushNotificationsRequest.h b/PubNub/include/PubNub/PNBasePushNotificationsRequest.h
new file mode 120000
index 000000000..74e46b92e
--- /dev/null
+++ b/PubNub/include/PubNub/PNBasePushNotificationsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Push Notifications/PNBasePushNotificationsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCBORDecoder.h b/PubNub/include/PubNub/PNCBORDecoder.h
new file mode 120000
index 000000000..88ad0ee83
--- /dev/null
+++ b/PubNub/include/PubNub/PNCBORDecoder.h
@@ -0,0 +1 @@
+../../Data/PNCBORDecoder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCCCryptorWrapper.h b/PubNub/include/PubNub/PNCCCryptorWrapper.h
new file mode 120000
index 000000000..acead6b06
--- /dev/null
+++ b/PubNub/include/PubNub/PNCCCryptorWrapper.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Cryptors/AES/PNCCCryptorWrapper.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannel.h b/PubNub/include/PubNub/PNChannel.h
new file mode 120000
index 000000000..f576ad172
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannel.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNChannel.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelClientStateResult.h b/PubNub/include/PubNub/PNChannelClientStateResult.h
new file mode 120000
index 000000000..7e1475d48
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelClientStateResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNChannelClientStateResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelGroupAuditionParser.h b/PubNub/include/PubNub/PNChannelGroupAuditionParser.h
new file mode 120000
index 000000000..e93436f59
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelGroupAuditionParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNChannelGroupAuditionParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelGroupChannelsResult.h b/PubNub/include/PubNub/PNChannelGroupChannelsResult.h
new file mode 120000
index 000000000..710aaff2e
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelGroupChannelsResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNChannelGroupChannelsResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelGroupClientStateResult.h b/PubNub/include/PubNub/PNChannelGroupClientStateResult.h
new file mode 120000
index 000000000..9dd24be82
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelGroupClientStateResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNChannelGroupClientStateResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelGroupModificationParser.h b/PubNub/include/PubNub/PNChannelGroupModificationParser.h
new file mode 120000
index 000000000..3c1c6c776
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelGroupModificationParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNChannelGroupModificationParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelGroupsResult.h b/PubNub/include/PubNub/PNChannelGroupsResult.h
new file mode 120000
index 000000000..cd6881967
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelGroupsResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNChannelGroupsResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMember+Private.h b/PubNub/include/PubNub/PNChannelMember+Private.h
new file mode 120000
index 000000000..caee3e1e5
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMember+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNChannelMember+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMember.h b/PubNub/include/PubNub/PNChannelMember.h
new file mode 120000
index 000000000..bbc2ea293
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMember.h
@@ -0,0 +1 @@
+../../Data/Models/PNChannelMember.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMembersParser.h b/PubNub/include/PubNub/PNChannelMembersParser.h
new file mode 120000
index 000000000..89c1f25cb
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMembersParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNChannelMembersParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMetadata+Private.h b/PubNub/include/PubNub/PNChannelMetadata+Private.h
new file mode 120000
index 000000000..79b05d8a4
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMetadata+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNChannelMetadata+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMetadata.h b/PubNub/include/PubNub/PNChannelMetadata.h
new file mode 120000
index 000000000..b7faca299
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMetadata.h
@@ -0,0 +1 @@
+../../Data/Models/PNChannelMetadata.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNChannelMetadataChangeParser.h b/PubNub/include/PubNub/PNChannelMetadataChangeParser.h
new file mode 120000
index 000000000..84ae8fccd
--- /dev/null
+++ b/PubNub/include/PubNub/PNChannelMetadataChangeParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNChannelMetadataChangeParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNClientInformation.h b/PubNub/include/PubNub/PNClientInformation.h
new file mode 120000
index 000000000..ba18050bd
--- /dev/null
+++ b/PubNub/include/PubNub/PNClientInformation.h
@@ -0,0 +1 @@
+../../Data/PNClientInformation.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNClientState.h b/PubNub/include/PubNub/PNClientState.h
new file mode 120000
index 000000000..a639d82a9
--- /dev/null
+++ b/PubNub/include/PubNub/PNClientState.h
@@ -0,0 +1 @@
+../../Data/Managers/PNClientState.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNClientStateGetResult.h b/PubNub/include/PubNub/PNClientStateGetResult.h
new file mode 120000
index 000000000..e3c4e7421
--- /dev/null
+++ b/PubNub/include/PubNub/PNClientStateGetResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNClientStateGetResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNClientStateParser.h b/PubNub/include/PubNub/PNClientStateParser.h
new file mode 120000
index 000000000..5c374d4a7
--- /dev/null
+++ b/PubNub/include/PubNub/PNClientStateParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNClientStateParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNClientStateUpdateStatus.h b/PubNub/include/PubNub/PNClientStateUpdateStatus.h
new file mode 120000
index 000000000..3553f44c9
--- /dev/null
+++ b/PubNub/include/PubNub/PNClientStateUpdateStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNClientStateUpdateStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNConfiguration+Private.h b/PubNub/include/PubNub/PNConfiguration+Private.h
new file mode 120000
index 000000000..52ca5e983
--- /dev/null
+++ b/PubNub/include/PubNub/PNConfiguration+Private.h
@@ -0,0 +1 @@
+../../Data/PNConfiguration+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNConfiguration.h b/PubNub/include/PubNub/PNConfiguration.h
new file mode 120000
index 000000000..2bb48094a
--- /dev/null
+++ b/PubNub/include/PubNub/PNConfiguration.h
@@ -0,0 +1 @@
+../../Data/PNConfiguration.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNConstants.h b/PubNub/include/PubNub/PNConstants.h
new file mode 120000
index 000000000..881797255
--- /dev/null
+++ b/PubNub/include/PubNub/PNConstants.h
@@ -0,0 +1 @@
+../../Misc/PNConstants.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptoModule.h b/PubNub/include/PubNub/PNCryptoModule.h
new file mode 120000
index 000000000..a74a4fdd8
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptoModule.h
@@ -0,0 +1 @@
+../../Modules/Crypto/PNCryptoModule.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptoProvider.h b/PubNub/include/PubNub/PNCryptoProvider.h
new file mode 120000
index 000000000..8c9324e15
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptoProvider.h
@@ -0,0 +1 @@
+../../Misc/Protocols/PNCryptoProvider.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptor.h b/PubNub/include/PubNub/PNCryptor.h
new file mode 120000
index 000000000..93a2c6995
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptor.h
@@ -0,0 +1 @@
+../../Misc/Protocols/PNCryptor.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptorHeader+Private.h b/PubNub/include/PubNub/PNCryptorHeader+Private.h
new file mode 120000
index 000000000..27576a49a
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptorHeader+Private.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Header/PNCryptorHeader+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptorHeader.h b/PubNub/include/PubNub/PNCryptorHeader.h
new file mode 120000
index 000000000..1f28b1360
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptorHeader.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Header/PNCryptorHeader.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptorHeaderV1Data.h b/PubNub/include/PubNub/PNCryptorHeaderV1Data.h
new file mode 120000
index 000000000..f1df6d424
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptorHeaderV1Data.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Header/PNCryptorHeaderV1Data.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptorInputStream+Private.h b/PubNub/include/PubNub/PNCryptorInputStream+Private.h
new file mode 120000
index 000000000..2afc703ef
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptorInputStream+Private.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Data/PNCryptorInputStream+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNCryptorInputStream.h b/PubNub/include/PubNub/PNCryptorInputStream.h
new file mode 120000
index 000000000..336ecd6d0
--- /dev/null
+++ b/PubNub/include/PubNub/PNCryptorInputStream.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Data/PNCryptorInputStream.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNData.h b/PubNub/include/PubNub/PNData.h
new file mode 120000
index 000000000..d125b8cf5
--- /dev/null
+++ b/PubNub/include/PubNub/PNData.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNData.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDataStorage.h b/PubNub/include/PubNub/PNDataStorage.h
new file mode 120000
index 000000000..3f3f1d40f
--- /dev/null
+++ b/PubNub/include/PubNub/PNDataStorage.h
@@ -0,0 +1 @@
+../../Data/Storage/PNDataStorage.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDate.h b/PubNub/include/PubNub/PNDate.h
new file mode 120000
index 000000000..56f246f18
--- /dev/null
+++ b/PubNub/include/PubNub/PNDate.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNDate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDefines.h b/PubNub/include/PubNub/PNDefines.h
new file mode 120000
index 000000000..09e3dc8d5
--- /dev/null
+++ b/PubNub/include/PubNub/PNDefines.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNDefines.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDeleteFileAPICallBuilder.h b/PubNub/include/PubNub/PNDeleteFileAPICallBuilder.h
new file mode 120000
index 000000000..671894086
--- /dev/null
+++ b/PubNub/include/PubNub/PNDeleteFileAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNDeleteFileAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDeleteFileParser.h b/PubNub/include/PubNub/PNDeleteFileParser.h
new file mode 120000
index 000000000..615c52ca4
--- /dev/null
+++ b/PubNub/include/PubNub/PNDeleteFileParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Files/PNDeleteFileParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDeleteFileRequest.h b/PubNub/include/PubNub/PNDeleteFileRequest.h
new file mode 120000
index 000000000..d974706da
--- /dev/null
+++ b/PubNub/include/PubNub/PNDeleteFileRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNDeleteFileRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDeleteMessageAPICallBuilder.h b/PubNub/include/PubNub/PNDeleteMessageAPICallBuilder.h
new file mode 120000
index 000000000..8ad09f525
--- /dev/null
+++ b/PubNub/include/PubNub/PNDeleteMessageAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/History/PNDeleteMessageAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDictionary.h b/PubNub/include/PubNub/PNDictionary.h
new file mode 120000
index 000000000..c4fd1c2c3
--- /dev/null
+++ b/PubNub/include/PubNub/PNDictionary.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNDictionary.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDownloadFileAPICallBuilder.h b/PubNub/include/PubNub/PNDownloadFileAPICallBuilder.h
new file mode 120000
index 000000000..caa12ee3f
--- /dev/null
+++ b/PubNub/include/PubNub/PNDownloadFileAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNDownloadFileAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDownloadFileRequest+Private.h b/PubNub/include/PubNub/PNDownloadFileRequest+Private.h
new file mode 120000
index 000000000..16ec5e5b4
--- /dev/null
+++ b/PubNub/include/PubNub/PNDownloadFileRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNDownloadFileRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDownloadFileRequest.h b/PubNub/include/PubNub/PNDownloadFileRequest.h
new file mode 120000
index 000000000..7a0cffc7f
--- /dev/null
+++ b/PubNub/include/PubNub/PNDownloadFileRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNDownloadFileRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNDownloadFileResult.h b/PubNub/include/PubNub/PNDownloadFileResult.h
new file mode 120000
index 000000000..24e3a31cc
--- /dev/null
+++ b/PubNub/include/PubNub/PNDownloadFileResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNDownloadFileResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNEncryptedData.h b/PubNub/include/PubNub/PNEncryptedData.h
new file mode 120000
index 000000000..e76ffc0d8
--- /dev/null
+++ b/PubNub/include/PubNub/PNEncryptedData.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Data/PNEncryptedData.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNEncryptedStream.h b/PubNub/include/PubNub/PNEncryptedStream.h
new file mode 120000
index 000000000..59955131d
--- /dev/null
+++ b/PubNub/include/PubNub/PNEncryptedStream.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Data/PNEncryptedStream.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNEnvelopeInformation.h b/PubNub/include/PubNub/PNEnvelopeInformation.h
new file mode 120000
index 000000000..98b631069
--- /dev/null
+++ b/PubNub/include/PubNub/PNEnvelopeInformation.h
@@ -0,0 +1 @@
+../../Data/PNEnvelopeInformation.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNErrorCodes.h b/PubNub/include/PubNub/PNErrorCodes.h
new file mode 120000
index 000000000..c5feaac87
--- /dev/null
+++ b/PubNub/include/PubNub/PNErrorCodes.h
@@ -0,0 +1 @@
+../../Misc/PNErrorCodes.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNErrorParser.h b/PubNub/include/PubNub/PNErrorParser.h
new file mode 120000
index 000000000..5ee4dc014
--- /dev/null
+++ b/PubNub/include/PubNub/PNErrorParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNErrorParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNErrorStatus+Private.h b/PubNub/include/PubNub/PNErrorStatus+Private.h
new file mode 120000
index 000000000..d98d074d8
--- /dev/null
+++ b/PubNub/include/PubNub/PNErrorStatus+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNErrorStatus+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNErrorStatus.h b/PubNub/include/PubNub/PNErrorStatus.h
new file mode 120000
index 000000000..3f4c92348
--- /dev/null
+++ b/PubNub/include/PubNub/PNErrorStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNErrorStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNEventsListener.h b/PubNub/include/PubNub/PNEventsListener.h
new file mode 120000
index 000000000..eeb0f0f8f
--- /dev/null
+++ b/PubNub/include/PubNub/PNEventsListener.h
@@ -0,0 +1 @@
+../../Misc/Protocols/PNEventsListener.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFCMNotificationPayload.h b/PubNub/include/PubNub/PNFCMNotificationPayload.h
new file mode 120000
index 000000000..9462a90c4
--- /dev/null
+++ b/PubNub/include/PubNub/PNFCMNotificationPayload.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/PNFCMNotificationPayload.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchAllChannelsMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNFetchAllChannelsMetadataAPICallBuilder.h
new file mode 120000
index 000000000..89b1765c6
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchAllChannelsMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Channel/PNFetchAllChannelsMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchAllChannelsMetadataRequest.h b/PubNub/include/PubNub/PNFetchAllChannelsMetadataRequest.h
new file mode 120000
index 000000000..770753835
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchAllChannelsMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Channel/PNFetchAllChannelsMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchAllUUIDMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNFetchAllUUIDMetadataAPICallBuilder.h
new file mode 120000
index 000000000..38251aa8d
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchAllUUIDMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/UUID/PNFetchAllUUIDMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchAllUUIDMetadataRequest.h b/PubNub/include/PubNub/PNFetchAllUUIDMetadataRequest.h
new file mode 120000
index 000000000..2288a5ec9
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchAllUUIDMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/UUID/PNFetchAllUUIDMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelMembersAPICallBuilder.h b/PubNub/include/PubNub/PNFetchChannelMembersAPICallBuilder.h
new file mode 120000
index 000000000..39920b0ac
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelMembersAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNFetchChannelMembersAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelMembersRequest.h b/PubNub/include/PubNub/PNFetchChannelMembersRequest.h
new file mode 120000
index 000000000..20760cf6a
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelMembersRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNFetchChannelMembersRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelMembersResult.h b/PubNub/include/PubNub/PNFetchChannelMembersResult.h
new file mode 120000
index 000000000..0642cbcba
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelMembersResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNFetchChannelMembersResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNFetchChannelMetadataAPICallBuilder.h
new file mode 120000
index 000000000..448f8ddb5
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Channel/PNFetchChannelMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelMetadataRequest.h b/PubNub/include/PubNub/PNFetchChannelMetadataRequest.h
new file mode 120000
index 000000000..fb6961a4e
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Channel/PNFetchChannelMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelsMetadataParser.h b/PubNub/include/PubNub/PNFetchChannelsMetadataParser.h
new file mode 120000
index 000000000..844f7566e
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelsMetadataParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNFetchChannelsMetadataParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchChannelsMetadataResult.h b/PubNub/include/PubNub/PNFetchChannelsMetadataResult.h
new file mode 120000
index 000000000..e5ee6f0b4
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchChannelsMetadataResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNFetchChannelsMetadataResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMembershipsAPICallBuilder.h b/PubNub/include/PubNub/PNFetchMembershipsAPICallBuilder.h
new file mode 120000
index 000000000..72a1ae34b
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMembershipsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMembershipsRequest.h b/PubNub/include/PubNub/PNFetchMembershipsRequest.h
new file mode 120000
index 000000000..1bccf0cde
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMembershipsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNFetchMembershipsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMembershipsResult.h b/PubNub/include/PubNub/PNFetchMembershipsResult.h
new file mode 120000
index 000000000..8d4b73040
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMembershipsResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNFetchMembershipsResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMessageActionsRequest.h b/PubNub/include/PubNub/PNFetchMessageActionsRequest.h
new file mode 120000
index 000000000..ef59dfeed
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMessageActionsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Actions/Message/PNFetchMessageActionsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMessageActionsResult.h b/PubNub/include/PubNub/PNFetchMessageActionsResult.h
new file mode 120000
index 000000000..fcff747f4
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMessageActionsResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNFetchMessageActionsResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMessagesActionsAPICallBuilder.h b/PubNub/include/PubNub/PNFetchMessagesActionsAPICallBuilder.h
new file mode 120000
index 000000000..e11d5be75
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMessagesActionsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Actions/Message/PNFetchMessagesActionsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchMessagesActionsParser.h b/PubNub/include/PubNub/PNFetchMessagesActionsParser.h
new file mode 120000
index 000000000..cac5dc5d1
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchMessagesActionsParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Actions/Message/PNFetchMessagesActionsParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchUUIDMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNFetchUUIDMetadataAPICallBuilder.h
new file mode 120000
index 000000000..10f17091c
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchUUIDMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/UUID/PNFetchUUIDMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchUUIDMetadataParser.h b/PubNub/include/PubNub/PNFetchUUIDMetadataParser.h
new file mode 120000
index 000000000..fc02603d7
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchUUIDMetadataParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNFetchUUIDMetadataParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchUUIDMetadataRequest.h b/PubNub/include/PubNub/PNFetchUUIDMetadataRequest.h
new file mode 120000
index 000000000..aefc9e1fc
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchUUIDMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/UUID/PNFetchUUIDMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFetchUUIDMetadataResult.h b/PubNub/include/PubNub/PNFetchUUIDMetadataResult.h
new file mode 120000
index 000000000..2b73971c3
--- /dev/null
+++ b/PubNub/include/PubNub/PNFetchUUIDMetadataResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNFetchUUIDMetadataResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFile+Private.h b/PubNub/include/PubNub/PNFile+Private.h
new file mode 120000
index 000000000..7a07940b2
--- /dev/null
+++ b/PubNub/include/PubNub/PNFile+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNFile+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFile.h b/PubNub/include/PubNub/PNFile.h
new file mode 120000
index 000000000..96aa3465b
--- /dev/null
+++ b/PubNub/include/PubNub/PNFile.h
@@ -0,0 +1 @@
+../../Data/Models/PNFile.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFileDownloadURLAPICallBuilder.h b/PubNub/include/PubNub/PNFileDownloadURLAPICallBuilder.h
new file mode 120000
index 000000000..4e4a1a09a
--- /dev/null
+++ b/PubNub/include/PubNub/PNFileDownloadURLAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNFileDownloadURLAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFilesAPICallBuilder.h b/PubNub/include/PubNub/PNFilesAPICallBuilder.h
new file mode 120000
index 000000000..9caa42f1b
--- /dev/null
+++ b/PubNub/include/PubNub/PNFilesAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNFilesAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNFilesManager.h b/PubNub/include/PubNub/PNFilesManager.h
new file mode 120000
index 000000000..1267bcc07
--- /dev/null
+++ b/PubNub/include/PubNub/PNFilesManager.h
@@ -0,0 +1 @@
+../../Data/Managers/PNFilesManager.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNGZIP.h b/PubNub/include/PubNub/PNGZIP.h
new file mode 120000
index 000000000..d6db5a085
--- /dev/null
+++ b/PubNub/include/PubNub/PNGZIP.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNGZIP.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNGenerateFileUploadURLParser.h b/PubNub/include/PubNub/PNGenerateFileUploadURLParser.h
new file mode 120000
index 000000000..c44d1f20f
--- /dev/null
+++ b/PubNub/include/PubNub/PNGenerateFileUploadURLParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Files/PNGenerateFileUploadURLParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNGenerateFileUploadURLRequest.h b/PubNub/include/PubNub/PNGenerateFileUploadURLRequest.h
new file mode 120000
index 000000000..23ff0e67b
--- /dev/null
+++ b/PubNub/include/PubNub/PNGenerateFileUploadURLRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNGenerateFileUploadURLRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNGenerateFileUploadURLStatus.h b/PubNub/include/PubNub/PNGenerateFileUploadURLStatus.h
new file mode 120000
index 000000000..69221f467
--- /dev/null
+++ b/PubNub/include/PubNub/PNGenerateFileUploadURLStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNGenerateFileUploadURLStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHeartbeat.h b/PubNub/include/PubNub/PNHeartbeat.h
new file mode 120000
index 000000000..904860c57
--- /dev/null
+++ b/PubNub/include/PubNub/PNHeartbeat.h
@@ -0,0 +1 @@
+../../Data/Managers/PNHeartbeat.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHeartbeatParser.h b/PubNub/include/PubNub/PNHeartbeatParser.h
new file mode 120000
index 000000000..cef2072bc
--- /dev/null
+++ b/PubNub/include/PubNub/PNHeartbeatParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNHeartbeatParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHelpers.h b/PubNub/include/PubNub/PNHelpers.h
new file mode 120000
index 000000000..e2b4516dc
--- /dev/null
+++ b/PubNub/include/PubNub/PNHelpers.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNHelpers.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHistoryAPICallBuilder.h b/PubNub/include/PubNub/PNHistoryAPICallBuilder.h
new file mode 120000
index 000000000..4574d4566
--- /dev/null
+++ b/PubNub/include/PubNub/PNHistoryAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/History/PNHistoryAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHistoryParser.h b/PubNub/include/PubNub/PNHistoryParser.h
new file mode 120000
index 000000000..9114e49f2
--- /dev/null
+++ b/PubNub/include/PubNub/PNHistoryParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNHistoryParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNHistoryResult.h b/PubNub/include/PubNub/PNHistoryResult.h
new file mode 120000
index 000000000..e12c8b41b
--- /dev/null
+++ b/PubNub/include/PubNub/PNHistoryResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNHistoryResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNInMemoryStorage.h b/PubNub/include/PubNub/PNInMemoryStorage.h
new file mode 120000
index 000000000..4eef73b93
--- /dev/null
+++ b/PubNub/include/PubNub/PNInMemoryStorage.h
@@ -0,0 +1 @@
+../../Data/Storage/PNInMemoryStorage.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNJSON.h b/PubNub/include/PubNub/PNJSON.h
new file mode 120000
index 000000000..27de96f03
--- /dev/null
+++ b/PubNub/include/PubNub/PNJSON.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNJSON.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNKeyValueStorage.h b/PubNub/include/PubNub/PNKeyValueStorage.h
new file mode 120000
index 000000000..16502d4e7
--- /dev/null
+++ b/PubNub/include/PubNub/PNKeyValueStorage.h
@@ -0,0 +1 @@
+../../Misc/Protocols/PNKeyValueStorage.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNKeychain+Private.h b/PubNub/include/PubNub/PNKeychain+Private.h
new file mode 120000
index 000000000..de6587454
--- /dev/null
+++ b/PubNub/include/PubNub/PNKeychain+Private.h
@@ -0,0 +1 @@
+../../Data/PNKeychain+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNKeychain.h b/PubNub/include/PubNub/PNKeychain.h
new file mode 120000
index 000000000..c4565d08f
--- /dev/null
+++ b/PubNub/include/PubNub/PNKeychain.h
@@ -0,0 +1 @@
+../../Data/PNKeychain.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNKeychainStorage.h b/PubNub/include/PubNub/PNKeychainStorage.h
new file mode 120000
index 000000000..a938c49c7
--- /dev/null
+++ b/PubNub/include/PubNub/PNKeychainStorage.h
@@ -0,0 +1 @@
+../../Data/Storage/PNKeychainStorage.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLLogFileInformation.h b/PubNub/include/PubNub/PNLLogFileInformation.h
new file mode 120000
index 000000000..f70aeb6f0
--- /dev/null
+++ b/PubNub/include/PubNub/PNLLogFileInformation.h
@@ -0,0 +1 @@
+../../Misc/Logger/Data/PNLLogFileInformation.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLLogger.h b/PubNub/include/PubNub/PNLLogger.h
new file mode 120000
index 000000000..5b649ae7f
--- /dev/null
+++ b/PubNub/include/PubNub/PNLLogger.h
@@ -0,0 +1 @@
+../../Misc/Logger/Core/PNLLogger.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLeaveParser.h b/PubNub/include/PubNub/PNLeaveParser.h
new file mode 120000
index 000000000..40f78e76b
--- /dev/null
+++ b/PubNub/include/PubNub/PNLeaveParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNLeaveParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLegacyCryptor.h b/PubNub/include/PubNub/PNLegacyCryptor.h
new file mode 120000
index 000000000..ee7312183
--- /dev/null
+++ b/PubNub/include/PubNub/PNLegacyCryptor.h
@@ -0,0 +1 @@
+../../Modules/Crypto/Cryptors/AES/PNLegacyCryptor.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNListFilesAPICallBuilder.h b/PubNub/include/PubNub/PNListFilesAPICallBuilder.h
new file mode 120000
index 000000000..2c2b6bb5d
--- /dev/null
+++ b/PubNub/include/PubNub/PNListFilesAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNListFilesAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNListFilesParser.h b/PubNub/include/PubNub/PNListFilesParser.h
new file mode 120000
index 000000000..bc4097ea0
--- /dev/null
+++ b/PubNub/include/PubNub/PNListFilesParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Files/PNListFilesParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNListFilesRequest.h b/PubNub/include/PubNub/PNListFilesRequest.h
new file mode 120000
index 000000000..4ce32e744
--- /dev/null
+++ b/PubNub/include/PubNub/PNListFilesRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNListFilesRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNListFilesResult.h b/PubNub/include/PubNub/PNListFilesResult.h
new file mode 120000
index 000000000..8f45cc860
--- /dev/null
+++ b/PubNub/include/PubNub/PNListFilesResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNListFilesResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLockSupport.h b/PubNub/include/PubNub/PNLockSupport.h
new file mode 120000
index 000000000..e6ebef3af
--- /dev/null
+++ b/PubNub/include/PubNub/PNLockSupport.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNLockSupport.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNLogMacro.h b/PubNub/include/PubNub/PNLogMacro.h
new file mode 120000
index 000000000..ad40e072f
--- /dev/null
+++ b/PubNub/include/PubNub/PNLogMacro.h
@@ -0,0 +1 @@
+../../Misc/Logger/PNLogMacro.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMPNSNotificationPayload.h b/PubNub/include/PubNub/PNMPNSNotificationPayload.h
new file mode 120000
index 000000000..dc7c7ec41
--- /dev/null
+++ b/PubNub/include/PubNub/PNMPNSNotificationPayload.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/PNMPNSNotificationPayload.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageChannelMembersAPICallBuilder.h b/PubNub/include/PubNub/PNManageChannelMembersAPICallBuilder.h
new file mode 120000
index 000000000..4d2d3ed11
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageChannelMembersAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNManageChannelMembersAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageChannelMembersRequest.h b/PubNub/include/PubNub/PNManageChannelMembersRequest.h
new file mode 120000
index 000000000..8f6c458fe
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageChannelMembersRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNManageChannelMembersRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageChannelMembersStatus.h b/PubNub/include/PubNub/PNManageChannelMembersStatus.h
new file mode 120000
index 000000000..c8c08507b
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageChannelMembersStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNManageChannelMembersStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageMembershipsAPICallBuilder.h b/PubNub/include/PubNub/PNManageMembershipsAPICallBuilder.h
new file mode 120000
index 000000000..b4ca9afba
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageMembershipsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageMembershipsRequest.h b/PubNub/include/PubNub/PNManageMembershipsRequest.h
new file mode 120000
index 000000000..cd9a0dc33
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageMembershipsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNManageMembershipsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNManageMembershipsStatus.h b/PubNub/include/PubNub/PNManageMembershipsStatus.h
new file mode 120000
index 000000000..ffeea4f5d
--- /dev/null
+++ b/PubNub/include/PubNub/PNManageMembershipsStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNManageMembershipsStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMembership+Private.h b/PubNub/include/PubNub/PNMembership+Private.h
new file mode 120000
index 000000000..1c2db0da2
--- /dev/null
+++ b/PubNub/include/PubNub/PNMembership+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNMembership+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMembership.h b/PubNub/include/PubNub/PNMembership.h
new file mode 120000
index 000000000..7c3029f14
--- /dev/null
+++ b/PubNub/include/PubNub/PNMembership.h
@@ -0,0 +1 @@
+../../Data/Models/PNMembership.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMembershipsParser.h b/PubNub/include/PubNub/PNMembershipsParser.h
new file mode 120000
index 000000000..18778cefa
--- /dev/null
+++ b/PubNub/include/PubNub/PNMembershipsParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNMembershipsParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageAction+Private.h b/PubNub/include/PubNub/PNMessageAction+Private.h
new file mode 120000
index 000000000..e542dadd8
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageAction+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNMessageAction+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageAction.h b/PubNub/include/PubNub/PNMessageAction.h
new file mode 120000
index 000000000..0ced8ce20
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageAction.h
@@ -0,0 +1 @@
+../../Data/Models/PNMessageAction.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageCountAPICallBuilder.h b/PubNub/include/PubNub/PNMessageCountAPICallBuilder.h
new file mode 120000
index 000000000..a324ddddb
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageCountAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/History/PNMessageCountAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageCountParser.h b/PubNub/include/PubNub/PNMessageCountParser.h
new file mode 120000
index 000000000..5de7a2965
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageCountParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNMessageCountParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageCountResult.h b/PubNub/include/PubNub/PNMessageCountResult.h
new file mode 120000
index 000000000..653181b7f
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageCountResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNMessageCountResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessageDeleteParser.h b/PubNub/include/PubNub/PNMessageDeleteParser.h
new file mode 120000
index 000000000..15f5fc224
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessageDeleteParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNMessageDeleteParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNMessagePublishParser.h b/PubNub/include/PubNub/PNMessagePublishParser.h
new file mode 120000
index 000000000..bd79ae8fa
--- /dev/null
+++ b/PubNub/include/PubNub/PNMessagePublishParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNMessagePublishParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNNetwork.h b/PubNub/include/PubNub/PNNetwork.h
new file mode 120000
index 000000000..7107f6a74
--- /dev/null
+++ b/PubNub/include/PubNub/PNNetwork.h
@@ -0,0 +1 @@
+../../Network/PNNetwork.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNNetworkResponseSerializer.h b/PubNub/include/PubNub/PNNetworkResponseSerializer.h
new file mode 120000
index 000000000..4ee123057
--- /dev/null
+++ b/PubNub/include/PubNub/PNNetworkResponseSerializer.h
@@ -0,0 +1 @@
+../../Network/PNNetworkResponseSerializer.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNNotificationsPayload.h b/PubNub/include/PubNub/PNNotificationsPayload.h
new file mode 120000
index 000000000..5ca0c39fd
--- /dev/null
+++ b/PubNub/include/PubNub/PNNotificationsPayload.h
@@ -0,0 +1 @@
+../../Misc/Helpers/Notifications Payload/PNNotificationsPayload.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNNumber.h b/PubNub/include/PubNub/PNNumber.h
new file mode 120000
index 000000000..88f000c8f
--- /dev/null
+++ b/PubNub/include/PubNub/PNNumber.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNNumber.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNObjectsAPICallBuilder.h b/PubNub/include/PubNub/PNObjectsAPICallBuilder.h
new file mode 120000
index 000000000..39f69477a
--- /dev/null
+++ b/PubNub/include/PubNub/PNObjectsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/PNObjectsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNObjectsPaginatedRequest.h b/PubNub/include/PubNub/PNObjectsPaginatedRequest.h
new file mode 120000
index 000000000..c1acd9fdf
--- /dev/null
+++ b/PubNub/include/PubNub/PNObjectsPaginatedRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/PNObjectsPaginatedRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNObjectsRemoveParser.h b/PubNub/include/PubNub/PNObjectsRemoveParser.h
new file mode 120000
index 000000000..99c8a2ceb
--- /dev/null
+++ b/PubNub/include/PubNub/PNObjectsRemoveParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNObjectsRemoveParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNOperationResult+Private.h b/PubNub/include/PubNub/PNOperationResult+Private.h
new file mode 120000
index 000000000..dd8ba0d1e
--- /dev/null
+++ b/PubNub/include/PubNub/PNOperationResult+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNOperationResult+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNOperationResult.h b/PubNub/include/PubNub/PNOperationResult.h
new file mode 120000
index 000000000..1d1dcc9fb
--- /dev/null
+++ b/PubNub/include/PubNub/PNOperationResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNOperationResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPAMToken+Private.h b/PubNub/include/PubNub/PNPAMToken+Private.h
new file mode 120000
index 000000000..1b0663f2d
--- /dev/null
+++ b/PubNub/include/PubNub/PNPAMToken+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNPAMToken+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPAMToken.h b/PubNub/include/PubNub/PNPAMToken.h
new file mode 120000
index 000000000..04cb56ab8
--- /dev/null
+++ b/PubNub/include/PubNub/PNPAMToken.h
@@ -0,0 +1 @@
+../../Data/Models/PNPAMToken.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNParser.h b/PubNub/include/PubNub/PNParser.h
new file mode 120000
index 000000000..b47d23fff
--- /dev/null
+++ b/PubNub/include/PubNub/PNParser.h
@@ -0,0 +1 @@
+../../Misc/Protocols/PNParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceAPICallBuilder.h
new file mode 120000
index 000000000..10a32854d
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceChannelGroupHereNowAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceChannelGroupHereNowAPICallBuilder.h
new file mode 120000
index 000000000..77d77c913
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceChannelGroupHereNowAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceChannelGroupHereNowAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceChannelGroupHereNowResult.h b/PubNub/include/PubNub/PNPresenceChannelGroupHereNowResult.h
new file mode 120000
index 000000000..404d10c7f
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceChannelGroupHereNowResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNPresenceChannelGroupHereNowResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceChannelHereNowAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceChannelHereNowAPICallBuilder.h
new file mode 120000
index 000000000..36954fa50
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceChannelHereNowAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceChannelHereNowAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceChannelHereNowResult.h b/PubNub/include/PubNub/PNPresenceChannelHereNowResult.h
new file mode 120000
index 000000000..f6cd728c0
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceChannelHereNowResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNPresenceChannelHereNowResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceGlobalHereNowResult.h b/PubNub/include/PubNub/PNPresenceGlobalHereNowResult.h
new file mode 120000
index 000000000..588865159
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceGlobalHereNowResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNPresenceGlobalHereNowResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceHeartbeatAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceHeartbeatAPICallBuilder.h
new file mode 120000
index 000000000..0adcf109c
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceHeartbeatAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceHeartbeatAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceHereNowAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceHereNowAPICallBuilder.h
new file mode 120000
index 000000000..fd90c6461
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceHereNowAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceHereNowAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceHereNowParser.h b/PubNub/include/PubNub/PNPresenceHereNowParser.h
new file mode 120000
index 000000000..9d5b9141c
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceHereNowParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNPresenceHereNowParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceWhereNowAPICallBuilder.h b/PubNub/include/PubNub/PNPresenceWhereNowAPICallBuilder.h
new file mode 120000
index 000000000..c63e42212
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceWhereNowAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Presence/PNPresenceWhereNowAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceWhereNowParser.h b/PubNub/include/PubNub/PNPresenceWhereNowParser.h
new file mode 120000
index 000000000..4ed9b6771
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceWhereNowParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNPresenceWhereNowParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPresenceWhereNowResult.h b/PubNub/include/PubNub/PNPresenceWhereNowResult.h
new file mode 120000
index 000000000..2cf199cb5
--- /dev/null
+++ b/PubNub/include/PubNub/PNPresenceWhereNowResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNPresenceWhereNowResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPrivateStructures.h b/PubNub/include/PubNub/PNPrivateStructures.h
new file mode 120000
index 000000000..b069a496c
--- /dev/null
+++ b/PubNub/include/PubNub/PNPrivateStructures.h
@@ -0,0 +1 @@
+../../Misc/PNPrivateStructures.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishAPICallBuilder.h b/PubNub/include/PubNub/PNPublishAPICallBuilder.h
new file mode 120000
index 000000000..7ef4dab6d
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Publish/PNPublishAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishFileMessageAPICallBuilder.h b/PubNub/include/PubNub/PNPublishFileMessageAPICallBuilder.h
new file mode 120000
index 000000000..0db99fbae
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishFileMessageAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Publish/PNPublishFileMessageAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishFileMessageRequest.h b/PubNub/include/PubNub/PNPublishFileMessageRequest.h
new file mode 120000
index 000000000..2b65367bc
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishFileMessageRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Publish/PNPublishFileMessageRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishRequest.h b/PubNub/include/PubNub/PNPublishRequest.h
new file mode 120000
index 000000000..b16409abb
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Publish/PNPublishRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishSequence.h b/PubNub/include/PubNub/PNPublishSequence.h
new file mode 120000
index 000000000..78f55ad27
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishSequence.h
@@ -0,0 +1 @@
+../../Data/Managers/PNPublishSequence.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishSizeAPICallBuilder.h b/PubNub/include/PubNub/PNPublishSizeAPICallBuilder.h
new file mode 120000
index 000000000..d168ee932
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishSizeAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Publish/PNPublishSizeAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPublishStatus.h b/PubNub/include/PubNub/PNPublishStatus.h
new file mode 120000
index 000000000..af82df7e7
--- /dev/null
+++ b/PubNub/include/PubNub/PNPublishStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNPublishStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPushNotificationsAuditParser.h b/PubNub/include/PubNub/PNPushNotificationsAuditParser.h
new file mode 120000
index 000000000..4a9edda20
--- /dev/null
+++ b/PubNub/include/PubNub/PNPushNotificationsAuditParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNPushNotificationsAuditParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNPushNotificationsStateModificationParser.h b/PubNub/include/PubNub/PNPushNotificationsStateModificationParser.h
new file mode 120000
index 000000000..5625f565c
--- /dev/null
+++ b/PubNub/include/PubNub/PNPushNotificationsStateModificationParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNPushNotificationsStateModificationParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNReachability.h b/PubNub/include/PubNub/PNReachability.h
new file mode 120000
index 000000000..38dd93fd1
--- /dev/null
+++ b/PubNub/include/PubNub/PNReachability.h
@@ -0,0 +1 @@
+../../Network/PNReachability.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveAllPushNotificationsRequest.h b/PubNub/include/PubNub/PNRemoveAllPushNotificationsRequest.h
new file mode 120000
index 000000000..6b1a72923
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveAllPushNotificationsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Push Notifications/PNRemoveAllPushNotificationsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveChannelMembersAPICallBuilder.h b/PubNub/include/PubNub/PNRemoveChannelMembersAPICallBuilder.h
new file mode 120000
index 000000000..3f53a99a2
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveChannelMembersAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNRemoveChannelMembersAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveChannelMembersRequest.h b/PubNub/include/PubNub/PNRemoveChannelMembersRequest.h
new file mode 120000
index 000000000..e1d7f9042
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveChannelMembersRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNRemoveChannelMembersRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveChannelMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNRemoveChannelMetadataAPICallBuilder.h
new file mode 120000
index 000000000..2dc5ea75f
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveChannelMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Channel/PNRemoveChannelMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveChannelMetadataRequest.h b/PubNub/include/PubNub/PNRemoveChannelMetadataRequest.h
new file mode 120000
index 000000000..7c2093bee
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveChannelMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Channel/PNRemoveChannelMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveMembershipsAPICallBuilder.h b/PubNub/include/PubNub/PNRemoveMembershipsAPICallBuilder.h
new file mode 120000
index 000000000..72c1cbadb
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveMembershipsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNRemoveMembershipsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveMembershipsRequest.h b/PubNub/include/PubNub/PNRemoveMembershipsRequest.h
new file mode 120000
index 000000000..e9963761a
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveMembershipsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNRemoveMembershipsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveMessageActionAPICallBuilder.h b/PubNub/include/PubNub/PNRemoveMessageActionAPICallBuilder.h
new file mode 120000
index 000000000..2f23c089b
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveMessageActionAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Actions/Message/PNRemoveMessageActionAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveMessageActionParser.h b/PubNub/include/PubNub/PNRemoveMessageActionParser.h
new file mode 120000
index 000000000..e35b0de8a
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveMessageActionParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Actions/Message/PNRemoveMessageActionParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveMessageActionRequest.h b/PubNub/include/PubNub/PNRemoveMessageActionRequest.h
new file mode 120000
index 000000000..d35fa4584
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveMessageActionRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Actions/Message/PNRemoveMessageActionRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemovePushNotificationsRequest.h b/PubNub/include/PubNub/PNRemovePushNotificationsRequest.h
new file mode 120000
index 000000000..c183e040a
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemovePushNotificationsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Push Notifications/PNRemovePushNotificationsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveUUIDMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNRemoveUUIDMetadataAPICallBuilder.h
new file mode 120000
index 000000000..45daf5e93
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveUUIDMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/UUID/PNRemoveUUIDMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRemoveUUIDMetadataRequest.h b/PubNub/include/PubNub/PNRemoveUUIDMetadataRequest.h
new file mode 120000
index 000000000..4f27ef722
--- /dev/null
+++ b/PubNub/include/PubNub/PNRemoveUUIDMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/UUID/PNRemoveUUIDMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRequest+Private.h b/PubNub/include/PubNub/PNRequest+Private.h
new file mode 120000
index 000000000..a70d94efc
--- /dev/null
+++ b/PubNub/include/PubNub/PNRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/PNRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRequest.h b/PubNub/include/PubNub/PNRequest.h
new file mode 120000
index 000000000..4c9ce9e33
--- /dev/null
+++ b/PubNub/include/PubNub/PNRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/PNRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRequestParameters.h b/PubNub/include/PubNub/PNRequestParameters.h
new file mode 120000
index 000000000..00ded7ea7
--- /dev/null
+++ b/PubNub/include/PubNub/PNRequestParameters.h
@@ -0,0 +1 @@
+../../Network/PNRequestParameters.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRequestRetryConfiguration+Private.h b/PubNub/include/PubNub/PNRequestRetryConfiguration+Private.h
new file mode 120000
index 000000000..d9afa231a
--- /dev/null
+++ b/PubNub/include/PubNub/PNRequestRetryConfiguration+Private.h
@@ -0,0 +1 @@
+../../Network/PNRequestRetryConfiguration+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNRequestRetryConfiguration.h b/PubNub/include/PubNub/PNRequestRetryConfiguration.h
new file mode 120000
index 000000000..c20e89533
--- /dev/null
+++ b/PubNub/include/PubNub/PNRequestRetryConfiguration.h
@@ -0,0 +1 @@
+../../Network/PNRequestRetryConfiguration.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNResult.h b/PubNub/include/PubNub/PNResult.h
new file mode 120000
index 000000000..f48168936
--- /dev/null
+++ b/PubNub/include/PubNub/PNResult.h
@@ -0,0 +1 @@
+../../Data/PNResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSendFileAPICallBuilder.h b/PubNub/include/PubNub/PNSendFileAPICallBuilder.h
new file mode 120000
index 000000000..3c7feab0b
--- /dev/null
+++ b/PubNub/include/PubNub/PNSendFileAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Files/PNSendFileAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSendFileRequest+Private.h b/PubNub/include/PubNub/PNSendFileRequest+Private.h
new file mode 120000
index 000000000..197c2970e
--- /dev/null
+++ b/PubNub/include/PubNub/PNSendFileRequest+Private.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNSendFileRequest+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSendFileRequest.h b/PubNub/include/PubNub/PNSendFileRequest.h
new file mode 120000
index 000000000..44e990332
--- /dev/null
+++ b/PubNub/include/PubNub/PNSendFileRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Files/PNSendFileRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSendFileStatus+Private.h b/PubNub/include/PubNub/PNSendFileStatus+Private.h
new file mode 120000
index 000000000..5cb1649c9
--- /dev/null
+++ b/PubNub/include/PubNub/PNSendFileStatus+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSendFileStatus+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSendFileStatus.h b/PubNub/include/PubNub/PNSendFileStatus.h
new file mode 120000
index 000000000..227f7497b
--- /dev/null
+++ b/PubNub/include/PubNub/PNSendFileStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSendFileStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSequenceInputStream.h b/PubNub/include/PubNub/PNSequenceInputStream.h
new file mode 120000
index 000000000..90d3110a7
--- /dev/null
+++ b/PubNub/include/PubNub/PNSequenceInputStream.h
@@ -0,0 +1 @@
+../../Network/Streams/PNSequenceInputStream.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNServiceData+Private.h b/PubNub/include/PubNub/PNServiceData+Private.h
new file mode 120000
index 000000000..ed5356bcb
--- /dev/null
+++ b/PubNub/include/PubNub/PNServiceData+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNServiceData+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNServiceData.h b/PubNub/include/PubNub/PNServiceData.h
new file mode 120000
index 000000000..4156d9218
--- /dev/null
+++ b/PubNub/include/PubNub/PNServiceData.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNServiceData.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetChannelMembersAPICallBuilder.h b/PubNub/include/PubNub/PNSetChannelMembersAPICallBuilder.h
new file mode 120000
index 000000000..7389af564
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetChannelMembersAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNSetChannelMembersAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetChannelMembersRequest.h b/PubNub/include/PubNub/PNSetChannelMembersRequest.h
new file mode 120000
index 000000000..c216bed80
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetChannelMembersRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNSetChannelMembersRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetChannelMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNSetChannelMetadataAPICallBuilder.h
new file mode 120000
index 000000000..92d027a0c
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetChannelMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Channel/PNSetChannelMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetChannelMetadataRequest.h b/PubNub/include/PubNub/PNSetChannelMetadataRequest.h
new file mode 120000
index 000000000..ee84afb24
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetChannelMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Channel/PNSetChannelMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetChannelMetadataStatus.h b/PubNub/include/PubNub/PNSetChannelMetadataStatus.h
new file mode 120000
index 000000000..631231a2d
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetChannelMetadataStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSetChannelMetadataStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetMembershipsAPICallBuilder.h b/PubNub/include/PubNub/PNSetMembershipsAPICallBuilder.h
new file mode 120000
index 000000000..14d839b2b
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetMembershipsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/Membership/PNSetMembershipsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetMembershipsRequest.h b/PubNub/include/PubNub/PNSetMembershipsRequest.h
new file mode 120000
index 000000000..6c7bef73d
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetMembershipsRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/Membership/PNSetMembershipsRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetUUIDMetadataAPICallBuilder.h b/PubNub/include/PubNub/PNSetUUIDMetadataAPICallBuilder.h
new file mode 120000
index 000000000..08c1feb06
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetUUIDMetadataAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Objects/UUID/PNSetUUIDMetadataAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetUUIDMetadataRequest.h b/PubNub/include/PubNub/PNSetUUIDMetadataRequest.h
new file mode 120000
index 000000000..86ffab054
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetUUIDMetadataRequest.h
@@ -0,0 +1 @@
+../../Network/Requests/Objects/UUID/PNSetUUIDMetadataRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSetUUIDMetadataStatus.h b/PubNub/include/PubNub/PNSetUUIDMetadataStatus.h
new file mode 120000
index 000000000..f9d163f25
--- /dev/null
+++ b/PubNub/include/PubNub/PNSetUUIDMetadataStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSetUUIDMetadataStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSignalAPICallBuilder.h b/PubNub/include/PubNub/PNSignalAPICallBuilder.h
new file mode 120000
index 000000000..75540dc68
--- /dev/null
+++ b/PubNub/include/PubNub/PNSignalAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Publish/PNSignalAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSignalStatus.h b/PubNub/include/PubNub/PNSignalStatus.h
new file mode 120000
index 000000000..213c43247
--- /dev/null
+++ b/PubNub/include/PubNub/PNSignalStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSignalStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStateAPICallBuilder.h b/PubNub/include/PubNub/PNStateAPICallBuilder.h
new file mode 120000
index 000000000..428d7a383
--- /dev/null
+++ b/PubNub/include/PubNub/PNStateAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/State/PNStateAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStateAuditAPICallBuilder.h b/PubNub/include/PubNub/PNStateAuditAPICallBuilder.h
new file mode 120000
index 000000000..30ae004f4
--- /dev/null
+++ b/PubNub/include/PubNub/PNStateAuditAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/State/PNStateAuditAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStateListener.h b/PubNub/include/PubNub/PNStateListener.h
new file mode 120000
index 000000000..5b424932c
--- /dev/null
+++ b/PubNub/include/PubNub/PNStateListener.h
@@ -0,0 +1 @@
+../../Data/Managers/PNStateListener.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStateModificationAPICallBuilder.h b/PubNub/include/PubNub/PNStateModificationAPICallBuilder.h
new file mode 120000
index 000000000..737c0a9d8
--- /dev/null
+++ b/PubNub/include/PubNub/PNStateModificationAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/State/PNStateModificationAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStatus+Private.h b/PubNub/include/PubNub/PNStatus+Private.h
new file mode 120000
index 000000000..bf6f0ef21
--- /dev/null
+++ b/PubNub/include/PubNub/PNStatus+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNStatus+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStatus.h b/PubNub/include/PubNub/PNStatus.h
new file mode 120000
index 000000000..705ae1b87
--- /dev/null
+++ b/PubNub/include/PubNub/PNStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStreamAPICallBuilder.h b/PubNub/include/PubNub/PNStreamAPICallBuilder.h
new file mode 120000
index 000000000..951cd4675
--- /dev/null
+++ b/PubNub/include/PubNub/PNStreamAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Stream/PNStreamAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStreamAuditAPICallBuilder.h b/PubNub/include/PubNub/PNStreamAuditAPICallBuilder.h
new file mode 120000
index 000000000..97d2dfb95
--- /dev/null
+++ b/PubNub/include/PubNub/PNStreamAuditAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Stream/PNStreamAuditAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStreamModificationAPICallBuilder.h b/PubNub/include/PubNub/PNStreamModificationAPICallBuilder.h
new file mode 120000
index 000000000..37d7cb52b
--- /dev/null
+++ b/PubNub/include/PubNub/PNStreamModificationAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Stream/PNStreamModificationAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNString.h b/PubNub/include/PubNub/PNString.h
new file mode 120000
index 000000000..57dd76605
--- /dev/null
+++ b/PubNub/include/PubNub/PNString.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNString.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNStructures.h b/PubNub/include/PubNub/PNStructures.h
new file mode 120000
index 000000000..b2a1bae17
--- /dev/null
+++ b/PubNub/include/PubNub/PNStructures.h
@@ -0,0 +1 @@
+../../Misc/PNStructures.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscribeAPIBuilder.h b/PubNub/include/PubNub/PNSubscribeAPIBuilder.h
new file mode 120000
index 000000000..804c4e986
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscribeAPIBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Subscribe/PNSubscribeAPIBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscribeChannelsOrGroupsAPIBuilder.h b/PubNub/include/PubNub/PNSubscribeChannelsOrGroupsAPIBuilder.h
new file mode 120000
index 000000000..fd872f91f
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscribeChannelsOrGroupsAPIBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Subscribe/PNSubscribeChannelsOrGroupsAPIBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscribeParser.h b/PubNub/include/PubNub/PNSubscribeParser.h
new file mode 120000
index 000000000..a099474f6
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscribeParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNSubscribeParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscribeStatus+Private.h b/PubNub/include/PubNub/PNSubscribeStatus+Private.h
new file mode 120000
index 000000000..bafd58cd0
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscribeStatus+Private.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSubscribeStatus+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscribeStatus.h b/PubNub/include/PubNub/PNSubscribeStatus.h
new file mode 120000
index 000000000..b316188bc
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscribeStatus.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSubscribeStatus.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscriber.h b/PubNub/include/PubNub/PNSubscriber.h
new file mode 120000
index 000000000..30052db40
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscriber.h
@@ -0,0 +1 @@
+../../Data/Managers/PNSubscriber.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNSubscriberResults.h b/PubNub/include/PubNub/PNSubscriberResults.h
new file mode 120000
index 000000000..7e622808b
--- /dev/null
+++ b/PubNub/include/PubNub/PNSubscriberResults.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNSubscriberResults.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNTelemetry.h b/PubNub/include/PubNub/PNTelemetry.h
new file mode 120000
index 000000000..7f59a62cf
--- /dev/null
+++ b/PubNub/include/PubNub/PNTelemetry.h
@@ -0,0 +1 @@
+../../Data/Managers/PNTelemetry.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNTimeAPICallBuilder.h b/PubNub/include/PubNub/PNTimeAPICallBuilder.h
new file mode 120000
index 000000000..e1862698f
--- /dev/null
+++ b/PubNub/include/PubNub/PNTimeAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Time/PNTimeAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNTimeParser.h b/PubNub/include/PubNub/PNTimeParser.h
new file mode 120000
index 000000000..48577f855
--- /dev/null
+++ b/PubNub/include/PubNub/PNTimeParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNTimeParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNTimeResult.h b/PubNub/include/PubNub/PNTimeResult.h
new file mode 120000
index 000000000..e9b8f9474
--- /dev/null
+++ b/PubNub/include/PubNub/PNTimeResult.h
@@ -0,0 +1 @@
+../../Data/Service Objects/PNTimeResult.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNURLBuilder.h b/PubNub/include/PubNub/PNURLBuilder.h
new file mode 120000
index 000000000..e73bdbdf6
--- /dev/null
+++ b/PubNub/include/PubNub/PNURLBuilder.h
@@ -0,0 +1 @@
+../../Network/PNURLBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNURLRequest.h b/PubNub/include/PubNub/PNURLRequest.h
new file mode 120000
index 000000000..036b66a92
--- /dev/null
+++ b/PubNub/include/PubNub/PNURLRequest.h
@@ -0,0 +1 @@
+../../Misc/Helpers/PNURLRequest.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNUUIDMetadata+Private.h b/PubNub/include/PubNub/PNUUIDMetadata+Private.h
new file mode 120000
index 000000000..37203a69d
--- /dev/null
+++ b/PubNub/include/PubNub/PNUUIDMetadata+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNUUIDMetadata+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNUUIDMetadata.h b/PubNub/include/PubNub/PNUUIDMetadata.h
new file mode 120000
index 000000000..514b6a68c
--- /dev/null
+++ b/PubNub/include/PubNub/PNUUIDMetadata.h
@@ -0,0 +1 @@
+../../Data/Models/PNUUIDMetadata.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNUUIDMetadataChangeParser.h b/PubNub/include/PubNub/PNUUIDMetadataChangeParser.h
new file mode 120000
index 000000000..48fe11a76
--- /dev/null
+++ b/PubNub/include/PubNub/PNUUIDMetadataChangeParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/Objects/PNUUIDMetadataChangeParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNUnsubscribeAPICallBuilder.h b/PubNub/include/PubNub/PNUnsubscribeAPICallBuilder.h
new file mode 120000
index 000000000..be816ad81
--- /dev/null
+++ b/PubNub/include/PubNub/PNUnsubscribeAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Subscribe/PNUnsubscribeAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNUnsubscribeChannelsOrGroupsAPICallBuilder.h b/PubNub/include/PubNub/PNUnsubscribeChannelsOrGroupsAPICallBuilder.h
new file mode 120000
index 000000000..ebd68b80c
--- /dev/null
+++ b/PubNub/include/PubNub/PNUnsubscribeChannelsOrGroupsAPICallBuilder.h
@@ -0,0 +1 @@
+../../Data/Builders/API Call/Subscribe/PNUnsubscribeChannelsOrGroupsAPICallBuilder.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNXML+Private.h b/PubNub/include/PubNub/PNXML+Private.h
new file mode 120000
index 000000000..77e16dc02
--- /dev/null
+++ b/PubNub/include/PubNub/PNXML+Private.h
@@ -0,0 +1 @@
+../../Data/Models/PNXML+Private.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNXML.h b/PubNub/include/PubNub/PNXML.h
new file mode 120000
index 000000000..e35167191
--- /dev/null
+++ b/PubNub/include/PubNub/PNXML.h
@@ -0,0 +1 @@
+../../Data/Models/PNXML.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PNXMLParser.h b/PubNub/include/PubNub/PNXMLParser.h
new file mode 120000
index 000000000..e5723dcf4
--- /dev/null
+++ b/PubNub/include/PubNub/PNXMLParser.h
@@ -0,0 +1 @@
+../../Network/Parsers/PNXMLParser.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+APNS.h b/PubNub/include/PubNub/PubNub+APNS.h
new file mode 120000
index 000000000..ae9d0a2f8
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+APNS.h
@@ -0,0 +1 @@
+../../Core/PubNub+APNS.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+ChannelGroup.h b/PubNub/include/PubNub/PubNub+ChannelGroup.h
new file mode 120000
index 000000000..aa7f8c26e
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+ChannelGroup.h
@@ -0,0 +1 @@
+../../Core/PubNub+ChannelGroup.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Core.h b/PubNub/include/PubNub/PubNub+Core.h
new file mode 120000
index 000000000..c67854cc6
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Core.h
@@ -0,0 +1 @@
+../../Core/PubNub+Core.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+CorePrivate.h b/PubNub/include/PubNub/PubNub+CorePrivate.h
new file mode 120000
index 000000000..4ece7a398
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+CorePrivate.h
@@ -0,0 +1 @@
+../../Core/PubNub+CorePrivate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Files.h b/PubNub/include/PubNub/PubNub+Files.h
new file mode 120000
index 000000000..c6bbe1f80
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Files.h
@@ -0,0 +1 @@
+../../Core/PubNub+Files.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+History.h b/PubNub/include/PubNub/PubNub+History.h
new file mode 120000
index 000000000..c23bd37b7
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+History.h
@@ -0,0 +1 @@
+../../Core/PubNub+History.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+MessageActions.h b/PubNub/include/PubNub/PubNub+MessageActions.h
new file mode 120000
index 000000000..803692dbf
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+MessageActions.h
@@ -0,0 +1 @@
+../../Core/PubNub+MessageActions.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Objects.h b/PubNub/include/PubNub/PubNub+Objects.h
new file mode 120000
index 000000000..17ea5f1fa
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Objects.h
@@ -0,0 +1 @@
+../../Core/PubNub+Objects.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+PAM.h b/PubNub/include/PubNub/PubNub+PAM.h
new file mode 120000
index 000000000..64baf55b8
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+PAM.h
@@ -0,0 +1 @@
+../../Core/PubNub+PAM.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+PAMPrivate.h b/PubNub/include/PubNub/PubNub+PAMPrivate.h
new file mode 120000
index 000000000..34c9b16f4
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+PAMPrivate.h
@@ -0,0 +1 @@
+../../Core/PubNub+PAMPrivate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Presence.h b/PubNub/include/PubNub/PubNub+Presence.h
new file mode 120000
index 000000000..c5681ae25
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Presence.h
@@ -0,0 +1 @@
+../../Core/PubNub+Presence.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+PresencePrivate.h b/PubNub/include/PubNub/PubNub+PresencePrivate.h
new file mode 120000
index 000000000..d6bb55080
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+PresencePrivate.h
@@ -0,0 +1 @@
+../../Core/PubNub+PresencePrivate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Publish.h b/PubNub/include/PubNub/PubNub+Publish.h
new file mode 120000
index 000000000..693919d65
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Publish.h
@@ -0,0 +1 @@
+../../Core/PubNub+Publish.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+State.h b/PubNub/include/PubNub/PubNub+State.h
new file mode 120000
index 000000000..a702f6120
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+State.h
@@ -0,0 +1 @@
+../../Core/PubNub+State.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Subscribe.h b/PubNub/include/PubNub/PubNub+Subscribe.h
new file mode 120000
index 000000000..84405d08b
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Subscribe.h
@@ -0,0 +1 @@
+../../Core/PubNub+Subscribe.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+SubscribePrivate.h b/PubNub/include/PubNub/PubNub+SubscribePrivate.h
new file mode 120000
index 000000000..21fe0c1b3
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+SubscribePrivate.h
@@ -0,0 +1 @@
+../../Core/PubNub+SubscribePrivate.h
\ No newline at end of file
diff --git a/PubNub/include/PubNub/PubNub+Time.h b/PubNub/include/PubNub/PubNub+Time.h
new file mode 120000
index 000000000..d9f4f4936
--- /dev/null
+++ b/PubNub/include/PubNub/PubNub+Time.h
@@ -0,0 +1 @@
+../../Core/PubNub+Time.h
\ No newline at end of file
diff --git a/README.md b/README.md
index 21e92feed..9ace4b71b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# PubNub 5.4.0 for iOS 9+
+# PubNub 5.4.1 for iOS 9+
[![Twitter](https://img.shields.io/badge/twitter-%40PubNub-blue.svg?style=flat)](https://twitter.com/PubNub)
[![Twitter Releases](https://img.shields.io/badge/twitter-%40PubNubRelease-blue.svg?style=flat)](https://twitter.com/PubNubRelease)
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/PubNub.svg?style=flat)](https://img.shields.io/cocoapods/v/PubNub.svg)
diff --git a/VERSION b/VERSION
index 8a30e8f94..ade65226e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5.4.0
+5.4.1