refactor linker