 
 	data: -> inViewport: false
 
-	mounted: ->
-		return unless @shouldObserve and IntersectionObserver?
-		@observer = new IntersectionObserver @onInViewport, 
-			@makeIntersectionOptions()
-		@observer.observe @$el
-
+	# Start observing on init
+	mounted: -> @startObserving()
+		
 	computed:
 
 		# Conditions where the viewport is watched


	methods:

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

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