scanner: use format string to emit guards and classes
scanner: use join to create a comma separated list of argumants