added IProcedure's name field, and rewrite named let