no-frills file tree watching library