sematic and type checking are done