defined reporter and destination contracts, abstract reporter, mostly switched perfcake to the new reporting