unhardcoding macro compilation, step II: engine