Refactored GenerateIL