Make public/private clearer; add a check for bad loop var name
Use our own exception for a syntax error
More writing