Corporations and unions should be banned from contributing.
It would be interesting if corporations, unions, non-profits, churches, PACs, political parties, etc. were all declared non-persons as far as campaigns were concerned.
Then the only money that could go to campaigns would be that from individuals. The corporations, unions, churches, PACs, etc. could encourage individuals to give money to particular candidates or causes, but couldn't collect, bundle, or offset any funds.