add handling for targetAudience. Throw some exceptions in error conditions. Couple other changes.