    # File lib/facets/core/kernel/autoreload.rb, line 17
      def autoreload( *args )

        check_interval=10
        include_features = true
        files = nil

        args.each do |arg|
          case arg
          when Numeric
            check_interval = arg
          when String
            files = Dir.glob( arg )
          when Array
            files = arg
          when TrueClass, FalseClass
            include_features = arg
          end
        end

        file_mtime = {}

        Thread.new(Time.now) do |start_time|
          loop do
            sleep check_interval

            if include_features
              feature_files = $LOADED_FEATURES.collect { |feature|
                $LOAD_PATH.each { |lp| file = File.join(lp, feature) }
              }.flatten

              feature_files.each { |file|
                if File.exists?(file) and (mtime = File.stat(file).mtime) > (file_mtime[file] || start_time)
                  $autoreload_dirty = true
                  file_mtime[file] = mtime
                  STDERR.puts "File '#{ file }' reloaded"
                  begin
                    load(file)
                  rescue Exception => e
                    STDERR.puts e.inspect
                  end
                end
              }
            end

            if files
              files.each do |file|
                if File.exists?(file) and (mtime = File.stat(file).mtime) > (file_mtime[file] || start_time)
                  $autoreload_dirty = true
                  file_mtime[file] = mtime
                  STDERR.puts "File '#{ file }' changed"
                end
              end
            end

          end
        end

      end