base compiler abstraction + renames