add real arg parser, add verbose and dryrun opts, allow recursive directory search