lazy refactor changes
resolve symbols in decl and init codes