Why so many different cases for "IP" ?  Shouldn't it match "Id" wherever possible?