separated zpp and macro replacement