observable pattern
adding lnks