implemented synonym assignment and deeper synonym functionality