unify link generation