syntax rules working; all unit tests pass