 
         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")!
-        //}
+		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

						context?.strokeEllipse(in: highlightRect)

						// Drawing complete, retrieve the finished image and cleanup
						self.dealersDenMapImageView.image = UIGraphicsGetImageFromCurrentImageContext()
						UIGraphicsEndImageContext()
					}
				case .failure:


        if let mapEntry = dealer?.MapEntry, let map = mapEntry.Map, let mapImage = map.Image {

			disposables += imageService.retrieve(for: mapImage).startWithResult({ [weak self] result in
				guard let strongSelf = self else { return }
				switch result {
				case let .success(value):
					let ratio = strongSelf.dealersDenMapImageView.bounds.width / strongSelf.dealersDenMapImageView.bounds.height

					let segmentHeight = mapEntry.CGTapRadius * DealerViewController.MAP_SEGMENT_ZOOM
					let segmentWidth = segmentHeight * ratio
