use single instance of SharedAssignmentPointer for assignment client so we actually get reference counting