fix id unmarshalling to use pointer receivers