Part II: IDL's Internal API