old deps use isPrimary to match core