added dynamic link generation