unhardcoding macro compilation, steps III and IV: engine and bundles