changed API to better reflect linked and primary objects, more changes to follow