 
 	static func parseAttachment(_ attachmentObject: JSONDictionary) -> ParsedAttachment? {
 
-		guard let url = attachmentObject["url"] as? String else {
-			return nil
-		}
-		guard let mimeType = attachmentObject["mime_type"] as? String else {
-			return nil
-		}
-
-		let title = attachmentObject["title"] as? String
-		let sizeInBytes = attachmentObject["size_in_bytes"] as? Int
-		let durationInSeconds = attachmentObject["duration_in_seconds"] as? Int
+		guard let url = attachmentObject[Key.url] as? String else {
+			return nil
+		}
+		guard let mimeType = attachmentObject[Key.mimeType] as? String else {
+			return nil
+		}
+
+		let title = attachmentObject[Key.title] as? String
+		let sizeInBytes = attachmentObject[Key.sizeInBytes] as? Int
+		let durationInSeconds = attachmentObject[Key.durationInSeconds] as? Int
 
 		return ParsedAttachment(url: url, mimeType: mimeType, title: title, sizeInBytes: sizeInBytes, durationInSeconds: durationInSeconds)
 	}

			return nil
		}

		let contentHTML = itemDictionary["content_html"] as? String
		let contentText = itemDictionary["content_text"] as? String
		if contentHTML == nil && contentText == nil {
			return nil
		}
		let decodedContentHTML = contentHTML?.rsparser_stringByDecodingHTMLEntities()

		let url = itemDictionary["url"] as? String
		let externalURL = itemDictionary["external_url"] as? String
		let title = itemDictionary["title"] as? String
		let summary = itemDictionary["summary"] as? String
		let imageURL = itemDictionary["image"] as? String
		let bannerImageURL = itemDictionary["banner_image"] as? String

		let datePublished = parseDate(itemDictionary["date_published"] as? String)
		let dateModified = parseDate(itemDictionary["date_modified"] as? String)

		let authors = parseAuthors(itemDictionary)
		var tags: Set<String>? = nil
		if let tagsArray = itemDictionary["tags"] as? [String] {
			tags = Set(tagsArray)
		}
		let attachments = parseAttachments(itemDictionary)


	static func parseAttachments(_ itemDictionary: JSONDictionary) -> Set<ParsedAttachment>? {

		guard let attachmentsArray = itemDictionary[Key.attachments] as? JSONArray else {
			return nil
		}
		return Set(attachmentsArray.flatMap { parseAttachment($0) })
