more complete grammar