public override NSObject PhotoAlbumScrollView (NIPhotoAlbumScrollView photoAlbumScrollView, int photoIndex, out NIPhotoScrollViewPhotoSize photoSize, out bool isLoading, out SizeF originalPhotoDimensions)
			{
				isLoading = false;
				photoSize = NIPhotoScrollViewPhotoSize.NIPhotoScrollViewPhotoSizeUnknown;

				UIImage image;

				var photoIndexKey = _controller.CacheKeyForPhotoIndex (photoIndex);

				var photo = Photos [photoIndex];

				originalPhotoDimensions = photo.Dimensions;

				image = (UIImage)_controller.HighQualityImageCache.ObjectWithName (photoIndexKey);

				if (image != null) {
					photoSize = NIPhotoScrollViewPhotoSize.NIPhotoScrollViewPhotoSizeOriginal;
				} else {
					var source = photo.OriginalSource;
					_controller.RequestImageFromSource (source, NIPhotoScrollViewPhotoSize.NIPhotoScrollViewPhotoSizeOriginal, photoIndex);
					isLoading = true;

					// try to load the thumbnail if we can
					image = (UIImage)_controller.ThumbnailImageCache.ObjectWithName (photoIndexKey);
					if (image != null) {
						photoSize = NIPhotoScrollViewPhotoSize.NIPhotoScrollViewPhotoSizeThumbnail;
					} else {
						_controller.RequestImageFromSource(photo.ThumbnailSoruce, NIPhotoScrollViewPhotoSize.NIPhotoScrollViewPhotoSizeThumbnail, photoIndex);
					}
				}
				return image;
			}
		public override void PhotoAlbumScrollViewDidLoadPreviousPhoto (NIPhotoAlbumScrollView photoAlbumScrollView)
		{
			// overridden so that the native call won't be made because it isn't implemented in NIToolbarPhotoViewController
		}