~~ fixed typo in file name
~~ restore exception (TODO fix cause of throw)
~~ changed error reporting
~~ use map for keyword search
~~ report warnings too
~~ better error message