simplified program execution logic
copyright string is generated only once
checking for include guard is only done for headers
print report about changed files
invalid files are printed to cerr