 	
 	// MARK: Other
 	
+	func assetsCountFromCollection(collection: PHAssetCollection?) -> Int {
+		let fetchResult = (collection == nil) ? PHAsset.fetchAssetsWithMediaType(.Image, options: nil) : PHAsset.fetchAssetsInAssetCollection(collection, options: nil)
+		return fetchResult.count
+	}
+	
 	func lastImageFromCollection(collection: PHAssetCollection?) -> UIImage? {
 		
 		var returnImage: UIImage? = nil

			let topLevelUserCollections = PHCollectionList.fetchTopLevelUserCollectionsWithOptions(nil)
			for var i: Int = 0; i < topLevelUserCollections.count; ++i {
				if let userCollection = topLevelUserCollections[i] as? PHAssetCollection {
					let item = RootListItem(title: userCollection.localizedTitle, albumType: AlbumType.UserAlbum, image: self.lastImageFromCollection(userCollection))
					self.items.append(item)
				}
			}
			
			
			dispatch_async(dispatch_get_main_queue()) {
				self.tableView.reloadData()

			self.items.removeAll(keepCapacity: false)
			
			let allPhotosItem = RootListItem(title: AlbumType.titles[AlbumType.AllPhotos.rawValue], albumType: AlbumType.AllPhotos, image: self.lastImageFromCollection(nil))
			let assetsCount = self.assetsCountFromCollection(nil)
			if assetsCount > 0 {
				self.items.append(allPhotosItem)
			}
			
			let smartAlbums = PHAssetCollection.fetchAssetCollectionsWithType(PHAssetCollectionType.SmartAlbum, subtype: PHAssetCollectionSubtype.AlbumRegular, options: nil)
			for var i: Int = 0; i < smartAlbums.count; ++i {
				if let smartAlbum = smartAlbums[i] as? PHAssetCollection {
					var item: RootListItem? = nil
					
					let assetsCount = self.assetsCountFromCollection(smartAlbum)
					if assetsCount == 0 {
						continue
					}
					
					switch smartAlbum.assetCollectionSubtype {
					case .SmartAlbumFavorites:
						item = RootListItem(title: AlbumType.titles[AlbumType.Favorites.rawValue], albumType: AlbumType.Favorites, image: self.lastImageFromCollection(smartAlbum))
