                     files.every test
 
                 func = (name) =>
-                    @fileAdd name
-                    .then =>
-                        @fileChange name
+                    if @matches name
+                        @fileAdd name
+                        .then =>
+                            @fileChange name
 
                 # emit files in order
                 files.reduce (p, i) ->

        .catch (err) ->
            console.log "ERROR reading fin file", name

    fileAdd: (name) ->
        if @matches name
            super name
        else
            RSVP.Promise.resolve null

    fileChange: (name) ->
        if @matches name
            super name
        else
            RSVP.Promise.resolve null

    fileUnlink: (name) ->
        if @matches name
            super name
        else
            RSVP.Promise.resolve null

    start: ->
        super new RSVP.Promise (resolve, reject) =>
            @watcher = sane @config.basedir, [@config.pattern],

                ###

            @watcher.on "add", (filepath, root) =>
                if @matches filepath
                    @fileAdd filepath
                    .then => @fileChange filepath

            @watcher.on "change", (filepath, root) =>
                if @matches filepath
                    @fileChange filepath

            @watcher.on "delete", (filepath, root) =>
                if @matches filepath
                    @fileUnlink filepath

    stop: ->
        @watcher.close() if @config.continuous
