#23: add 'link' module

Resolves #23.