use idp instead of pointer