Added abstractions & changed optimize_code ID