 
         if let mapEntry = dealer?.MapEntry, let map = mapEntry.Map, let mapImage = map.Image {
 
-			disposables += imageService.retrieve(for: mapImage).startWithResult({ result in
+			disposables += imageService.retrieve(for: mapImage).startWithResult({ [weak self] result in
+				guard let strongSelf = self else { return }
 				switch result {
 				case let .success(value):
-					let ratio = self.dealersDenMapImageView.bounds.width / self.dealersDenMapImageView.bounds.height
+					let ratio = strongSelf.dealersDenMapImageView.bounds.width / strongSelf.dealersDenMapImageView.bounds.height
 
 					let segmentHeight = mapEntry.CGTapRadius * DealerViewController.MAP_SEGMENT_ZOOM
 					let segmentWidth = segmentHeight * ratio


        let newlineChars = CharacterSet.newlines

		// TODO: Implement image caching
        /*if let  artistImageId = dealer.ArtistImageId {
            artistImage.image = ImageManager.sharedInstance.retrieveFromCache(artistImageId, imagePlaceholder: UIImage(named: "defaultAvatarBig"))
        } else {*/
            artistImageView.image = UIImage(named: "defaultAvatarBig")!
        //}

		if let _ = dealer?.DisplayName, !dealer!.DisplayName.isEmpty {
			displayNameLabel.text = dealer?.DisplayName

        }
        aboutArtistLabel.sizeToFit()

		let heightConstraint = NSLayoutConstraint(item: artPreviewImageView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 0)
		artPreviewImageView.addConstraint(heightConstraint)

		if let artPreviewImage = dealer?.ArtPreviewImage {
			disposables += imageService.retrieve(for: artPreviewImage).startWithResult({ [weak self] result in
				guard let strongSelf = self else { return }
				switch result {
				case let .success(value):
					DispatchQueue.main.async {
						heightConstraint.isActive = false
						strongSelf.artPreviewImage.image = value
						strongSelf.artPreviewImageView.sizeToFit()

						if let artPreviewCaption = strongSelf.dealer?.ArtPreviewCaption {
							strongSelf.artPreviewCaption.text = artPreviewCaption.utf16.split { newlineChars.contains(UnicodeScalar($0)!) }.flatMap(String.init).joined(separator: "\n")
						}
						strongSelf.artPreviewCaption.sizeToFit()
					}
				case .failure:
					break
				}
			})
		}

        let aboutArtText = dealer?.AboutTheArtText.utf16.split { newlineChars.contains(UnicodeScalar($0)!) }.flatMap(String.init).joined(separator: "\n")
        if let aboutArtText = aboutArtText, !aboutArtText.isEmpty {
