must have id