         compile: (element, attr, linker) ->
           ($scope, $element, $attr, controller) ->
 
-            console.log controller
-
             match = $attr.ngScroll.match /^\s*(\w+)\s+in\s+(\w+)\s*$/
-
             if !match
               throw Error "Expected ngScroll in form of '_item_ in _datasource_' but got '#{$attr.ngScroll}'"
 


                ###

                List of used element methods defined in JQuery but not in JQuery Lite
                in other words if you want to remove dependency on JQuery the following methods are to be implemented:
                element.height()
                element.outerHeight(true)
                element.height(value) = only for Top/Bottom padding elements
                element.scrollTop()
                element.scrollTop(value)
                element.position()

                ###

                viewport = controller[0] || angular.element(window)
                canvas = controller[1] || element.parent()

                topPadding = angular.element('<div/>')
                element.before topPadding

                      bottomPadding.height(Math.max(0,bottomPadding.height() - wrapper.element.outerHeight(true)))

                prepend = (item) ->
                  itemScope = $scope.$new()
                  itemScope[itemName] = item
                  wrapper =
                    scope: itemScope
                  linker itemScope,
                  (clone) ->
                    topPadding.after clone
                    wrapper.element = clone
                    buffer.unshift wrapper
                  # using watch is the only way I found to gather the 'real' height of the thing - the height after the item
