generate @id