 	private let keyFormatter: KeyFormatter
 	
 	// Extracted objects
-	private var extractedPrimaryResources: [Resource] = []
+	private var extractedPrimaryResources: [Resource]?
 	private var extractedIncludedResources: [Resource] = []
 	private var extractedErrors: [APIError]?
 	private var extractedMeta: [String: AnyObject]?

		
		// Create a result
		var responseDocument = JSONAPIDocument(data: nil, included: nil, errors: extractedErrors, meta: extractedMeta, links: extractedLinks, jsonapi: extractedJSONAPI)
		if !extractedPrimaryResources.isEmpty {
			responseDocument.data = extractedPrimaryResources
		}
		if !extractedIncludedResources.isEmpty {
			responseDocument.included = extractedIncludedResources
		}

		// Extract resources
		do {
			if let data = self.data["data"].array {
        var resources: [Resource] = []
				for (index, representation) in data.enumerate() {
					try resources.append(deserializeSingleRepresentation(representation, mappingTargetIndex: index))
				}
        extractedPrimaryResources = resources
			} else if let _ = self.data["data"].dictionary {
        let resource = try deserializeSingleRepresentation(self.data["data"], mappingTargetIndex: resourcePool.startIndex)
        extractedPrimaryResources = [resource]
			}

			if let data = self.data["included"].array {
