 
                 ###
 
-                List of used element methods defined in JQuery but not in JQuery Lite
+                List of used element methods available 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()
+                element.offset()
 
                 ###
 
                 viewport = controller[0] || angular.element(window)
                 canvas = controller[1] || element.parent()
+                if canvas[0] == viewport[0]
+                  # if canvas and the viewport are the same create a new div to service as canvas
+                  contents = canvas.contents()
+                  canvas = angular.element('<div/>')
+                  viewport.append canvas
+                  canvas.append contents
+
+
 
                 topPadding = angular.element('<div/>')
                 element.before topPadding

                  enqueueFetch(true) if reloadRequested || shouldLoadBottom()
                  enqueueFetch(false) if shouldLoadTop()

                append = (item) ->
                  if buffer.length > 0
                    insertAfter = buffer[buffer.length-1].element
                  else
                    insertAfter = topPadding
                  itemScope = $scope.$new()
                  itemScope[itemName] = item
                  wrapper =
                    scope: itemScope
                  linker itemScope,
                    (clone) ->
                      insertAfter.after clone
                      wrapper.element = clone
                      buffer.push wrapper
                  # using watch is the only way I found to gather the 'real' height of the thing - the height after the item

                    console.log "clipped off bottom #{overage} bottom padding #{bottomHeight}"

                shouldLoadTop = ->
                  first > 1 &&
                    buffer[0].element.offset().top - canvas.offset().top > viewport.scrollTop() - bufferPadding()

                clipTop = ->
                  # clip off the invisible items form the top
