         if self.collectionView != nil && self.assetsFetchResults?.count > 0 {
             let imageRequestOptions = PHImageRequestOptions()
             
-            if let assets = self.assetsFetchResults.objectsAtIndexes(NSIndexSet(indexesInRange: NSRange(location: 0, length: min(self.assetsFetchResults.count, self.maxFetchResultsCount)))) as? Array<PHAsset> {
+            if let assets = self.assetsFetchResults?.objectsAtIndexes(NSIndexSet(indexesInRange: NSRange(location: 0, length: min(self.assetsFetchResults?.count ?? 0, self.maxFetchResultsCount)))) as? Array<PHAsset> {
                 self.imageManager.startCachingImagesForAssets(assets, targetSize: self.cachingImageThumbnailSize, contentMode: .AspectFit, options: imageRequestOptions)
             }
         }

    var delegate: RecentPhotosCollectionViewControllerDelegate?
    
    private var selectedAssets: [PHAsset] {
        return (self.collectionView?.indexPathsForSelectedItems() as? [NSIndexPath])?.map({ self.assetsFetchResults[$0.item] as! PHAsset }) ?? []
    }
    
    private var assetsFetchResults: PHFetchResult!
    private let maxFetchResultsCount = 70
    private let imageManager = PHCachingImageManager()
    private var cachingImageThumbnailSize = CGSizeZero

    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
        switch indexPath.section {
        case self.recentPhotosSection:
            let asset = self.assetsFetchResults![indexPath.item] as! PHAsset
            
            let itemCellHeight = (collectionViewLayout as! UICollectionViewFlowLayout).itemSize.height
            
