refactor link