 
         ### START ###
         start: ->
-            unless @currentProject == undefined
-                # Check if we are coming out of a pause
-                if @pauseTimestamp is null
-                    # Start the time tracking at this point only if we aren't already tracking
-                    if @startTimestamp is null
-                        # Setup the start date time only if we are not in paused state
-                        # otherwise start date time will keep changing which is wrong
-                        @startTimestamp = Date.now()
-
-                        # Initialize the time incrementer
-                        @incrementer = setInterval ( => @step() ), 1000
-
-                        # Display status
-                        @statusView.update( "Started time tracking ..." )
-                    else
-                        # We are already tracking time, nothing to do here
-                        @statusView.update( "Already tracking time ..." )
+            # Check if we are coming out of a pause
+            if @pauseTimestamp is null
+                # Start the time tracking at this point only if we aren't already tracking
+                if @startTimestamp is null
+                    # Setup the start date time only if we are not in paused state
+                    # otherwise start date time will keep changing which is wrong
+                    @startTimestamp = Date.now()
+
+                    # Initialize the time incrementer
+                    @incrementer = setInterval ( => @step() ), 1000
+
+                    # Display status
+                    @statusView.update( "Started time tracking ..." )
                 else
-                    # Display continuing status
-                    @statusView.update( "Continuing time tracking ..." )
-
-                    # Add the pause/break data to our holder
-                    @pauses.push { start: @pauseTimestamp, duration: @break }
-
-                    # Reset the pause stuff now
-                    @pauseTimestamp = null
-                    @break = 0
-
-                    # Remove the class from the clock view
-                    @clockView.removeClass( "paused" )
-
-                # Update the clock view
-                @clockView.update( @format() )
-
-                # Clearer for the status message
-                @statusClearer = setInterval ( => @clearStatus() ), 3000
-
-                # Set our active flag to true at this point, since we will be actively tracking time
-                @isActive = true
-            else
-                @statusView.update("No project loaded.")
-                @statusClearer = setInterval ( => @statusView.update("") ), 3000
+                    # We are already tracking time, nothing to do here
+                    @statusView.update( "Already tracking time ..." )
+            else
+                # Display continuing status
+                @statusView.update( "Continuing time tracking ..." )
+
+                # Add the pause/break data to our holder
+                @pauses.push { start: @pauseTimestamp, duration: @break }
+
+                # Reset the pause stuff now
+                @pauseTimestamp = null
+                @break = 0
+
+                # Remove the class from the clock view
+                @clockView.removeClass( "paused" )
+
+            # Update the clock view
+            @clockView.update( @format() )
+
+            # Clearer for the status message
+            @statusClearer = setInterval ( => @clearStatus() ), 3000
+
+            # Set our active flag to true at this point, since we will be actively tracking time
+            @isActive = true
 
         ### AUTO-PAUSE ###
         autopause: ->


        ### FINISH ###
        finish: ->
            # Setup the end timestamp (in milliseconds)
            @endTimestamp = Date.now()

            # Clear the clock incrementer
            clearTimeout @incrementer

            # Check if we are in pause when we finish
            if @pauseTimestamp isnt null
                # We need to add the pause to the pauses data object
                @pauses.push { start: @pauseTimestamp, duration: @break }

                # Remove the class from the clock view
                @clockView.removeClass( "paused" )

            # Save the time tracking data at this point
            @save()

            # Setup the status
            @statusView.update( "Saved punchclock data!" )

            # Clearer for the status message
            @statusClearer = setInterval ( => @clearStatus() ), 3000

            # Reset the timers
            @resetClocks()

            # Update the clock now
            @clockView.update( @format() )

            # Set our active flag to false at this point
            @isActive = false

        ### RELOAD TIMER ###
        didChangePaths: ->
            # Check whether we have root project
            if atom.project.getPaths()[0] == null
                @statusView.update("No project open")
            # Check if we've actually changed current path
            else unless atom.project.getPaths()[0] is @currentProject
                @finish() if @isActive # finish timer, reset variables, save.
                @resetClocks()
                @clearStatus()
                @currentProject = atom.project.getPaths()[0]
                @setStoragePath()
                @autostart()

        ### RESET ###
        reset: ->

                    @save( state.timerObject )

            # We only want to activate the package if there is a valid project
            if @currentProject then @setProjectPunchclockPath else @projectPunchclockPath = null

            # Keep track of start, pause, & end timestamps (in milliseconds)
            @startTimestamp = null
            @pauseTimestamp = null
            @endTimestamp = null

            # Keep track of auto-pause timestamps (in milliseconds)
            @autoPauseStartTimestamp = null
            @autoPauseEndTimestamp = null

            # Actual timer
            @clock = 0
            @break = 0

            # Holder for all pauses/breaks - manual only
            @pauses = []

            # Holder for all auto-pauses
            @autoPauses = []

            # Setup auto enable time tracking configuration
            @autoEnable = atom.config.get( "punchclock.autoEnableTimeTrackingOnLoad" )

        ### ACTIONS ###
        ### AUTO-START ###
