comments and whitespace are now ignored