do file exclusions in advance
code review cleanups
can exclude files using shell patterns

fixes #1