manual syntax checking