Implement SiteLinkSetter

Fixes #15
Refactor and simplify some public service methods