stab at reducing the link logic
more comments
define links property