 
 							# this watch fires once per item inserted after the item template has been processed and values inserted
 							# which allows to gather the 'real' height of the thing
-							itemScope.$watch 'heightAdjustment', ->
+							dereg = itemScope.$watch 'heightAdjustment', ->
 								if top
 									# an element is inserted at the top
 									newHeight = handler.topPadding() - wrapper.element.outerHeight(true)

										if result.length == 0
											eof = true
											console.log "appended: requested #{bufferSize} records starting from #{next} recieved: eof"
											finalize()
											return
										clipTop()
										for item in result
											lastScope = insert ++next, item, false

										console.log "appended: requested #{bufferSize} received #{result.length} buffer size #{buffer.length} first #{first} next #{next}"
										finalize()
										lastScope.$watch 'adjustBuffer', ->
											adjustBuffer()

							else
								if buffer.length && !shouldLoadTop()
									finalize()
								else
									#console.log "prepending... requested #{size} records starting from #{start}"
									datasource.get first-bufferSize, bufferSize,

								((wrapper)->
									if locator wrapper.scope
										removeFromBuffer temp.length-1-i, temp.length-i
										next--
								) wrapper for wrapper,i in temp
							else
								if 0 <= locator-first-1 < buffer.length
									removeFromBuffer locator-first-1, locator-first
									next--

							item.scope.$index = first + i for item,i in buffer
							adjustBuffer(false)

		])