refactored hyperlink listener