rewritten so keywords are passed as arguments from the command line