 		}
 	}
 	
-	private func nextImageRequest() -> ImageRequest? {
+	private func dequeueRequest() -> ImageRequest? {
 		
 		if let nextRequest = queuedRequests.last {
-			if let _ = activeImageRequest(forURLString: nextRequest.URLString) {
-				// skip
-			} else {
-				return nextRequest
-			}
+			queuedRequests.removeLast()
+			return nextRequest
 		}
 		return nil
 	}

		backgroundDatabaseConnection.asyncReadWrite({ transaction in
			for URLString in URLStrings {
				if let metadata = transaction.metadata(forKey: self.keyForImage(withURLString: URLString), inCollection: YapImageManagerImageCollection) as? ImageMetadata, metadata.expires != nil {
					print("PERSIST \(URLString)")
					transaction.replaceMetadata(ImageMetadata(created: metadata.created), forKey: self.keyForImage(withURLString: URLString), inCollection: YapImageManagerImageCollection)
				}
			}

	}
	
	private func processImageQueue() {

		// process image
		while !queuedRequests.isEmpty && isReadyForRequest() {
			if let imageRequest = dequeueRequest() {
				activeRequests.append(imageRequest)
				// start image download
				downloadImage(forRequest: imageRequest)
