generate new scope at compile