implement name analysis