refactor externalId; now all objects can have externalId associated to them