add syntax checking