better cross platform IDL