move PHScaleNode to 'macro' since it's only used there