add string literals and improve type checking