hash by target_id