 
         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

        }
        aboutArtistLabel.sizeToFit()

		// TODO: Implement image caching
        /*if let artPreviewImageId = self.dealer.ArtPreviewImageId, let artPreviewImage = ImageManager.sharedInstance.retrieveFromCache(artPreviewImageId) {
            self.artPreviewImage.image = artPreviewImage
            self.artPreviewImage.sizeToFit()
            
            let artPreviewCaption = self.dealer.ArtPreviewCaption!.utf16.split { newlineChars.contains(UnicodeScalar($0)!) }.flatMap(String.init)
            let finalStringArtPreviewCaption = artPreviewCaption.joined(separator: "\n");
            if (finalStringArtPreviewCaption == "") {
                self.artPreviewCaption.text = ""
            }
            else {
                self.artPreviewCaption.text = finalStringArtPreviewCaption;
            }
            self.artPreviewCaption.sizeToFit();
        } else {*/
            // if no image has been provided, hide the image section along with the caption
            if(self.artPreviewImage != nil) {
                artPreviewImage.image = nil
            }
            for subview in artPreviewImageView.subviews {
                subview.removeFromSuperview()
            }
            let heightConstraint = NSLayoutConstraint(item: artPreviewImageView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 0)
            artPreviewImageView.addConstraint(heightConstraint)
        //}

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


        let newlineChars = CharacterSet.newlines

		artistImageView.image = UIImage(named: "defaultAvatarBig")!
		if let artistImage = dealer?.ArtistImage {
			disposables += imageService.retrieve(for: artistImage).startWithResult({ [weak self] result in
				guard let strongSelf = self else { return }
				switch result {
				case let .success(value):
					DispatchQueue.main.async {
						strongSelf.artistImageView.image = value
					}
				case .failure:
					break
				}
			})
		}

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