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