private async void LoadPhoto(string id, NSIndexPath path, UIImageView target) {

                UIImage photoData = null;

                WeakReference wr;


                if (_photos.TryGetValue (id, out wr)) {

                    if (wr.IsAlive) {
                        photoData = (UIImage)wr.Target;
                    } else {
                        _photos.Remove (id);
                    }
                }

                if (photoData == null) {
                   
					var photo = new Picture (id);

                    // get the photo bits, resized to fit 200x200
                    var loadTask = await photo.GetFileAsync (200);


                    if (loadTask.IsSuccess && loadTask.Value != null) {

                        NSData d = NSData.FromStream (loadTask.Value);
                        photoData = UIImage.LoadFromData (d);
                        _photos [id] = new WeakReference(photoData);

                        // update the row after the load completes.
                        _parent.OnCheckinsUpdate (null, path);
                    }
                } 

                target.Image = photoData;
            }