 		# Store when in viewport
 		onInViewport: (entries) ->
 			@inViewport = entries[0].isIntersecting
-			@observer?.disconnect() if @inViewport and @shouldObserveOnce
+			if @inViewport and @shouldObserveOnce
+				@observer?.disconnect() 
+				delete @observer


	data: -> inViewport: false

	mounted: ->
		return unless @shouldObserve and IntersectionObserver?
		@observer = new IntersectionObserver @onInViewport, 
			@makeIntersectionOptions()
		@observer.observe @$el

	computed:

		# Conditions where the viewport is watched


	methods:

		# Start observing if appropriate
		startObserving: -> 
			return unless @shouldObserve and IntersectionObserver?
			return if @observer # Don't make multiple observers
			@observer = new IntersectionObserver @onInViewport, 
				@makeIntersectionOptions()
			@observer.observe @$el

		# Parse interesection options
		makeIntersectionOptions: ->
			options = @intersectionOptions
