beginning ICode generation