This seems very coupled to the actual fields of the campaign content type. Why has the content type been moved to a separate module?