move all CPT functionality to one class and add filter around cpt args