 	# App = angular.module 'PDFRenderer', ['pdfAnnotations', 'pdfTextLayer']
 
 	App.factory 'PDFRenderer', ['$q', '$timeout', 'pdfAnnotations', 'pdfTextLayer', 'pdfSpinner', ($q, $timeout, pdfAnnotations, pdfTextLayer, pdfSpinner) ->
-
-		# Have a single worker used by all rendering, to avoid reloading
-		RenderThread = { worker: null, count: 0}
-
-		getRenderThread = () ->
-			if RenderThread.count > 16 # recycle the worker periodically to avoid leaks
-				RenderThread.readyToDestroy = true
-				RenderThread = { worker: null, count: 0 }
-			RenderThread.worker ||= new PDFJS.PDFWorker('pdfjsworker')
-			RenderThread.count++
-			return RenderThread
-
-		resetWorker = (thread) ->
-			thread.worker.destroy() if thread.readyToDestroy
-
-		# The PDF page renderer
 
 		class PDFRenderer
 			JOB_QUEUE_INTERVAL: 25

				# PDFJS.disableStream
				# PDFJS.disableRange
				@scale = @options.scale || 1
				@thread = getRenderThread()
				@pdfjs = PDFJS.getDocument {url: @url, rangeChunkSize: 2*65536, worker: @thread.worker}
				@pdfjs.onProgress = @options.progressCallback
				@document = $q.when(@pdfjs)
				@navigateFn = @options.navigateFn

			destroy: () ->
				@shuttingDown = true
				@resetState()
				@pdfjs.then (document) ->
					document.cleanup()
					document.destroy()

		]
