A uniform method for constructing sets which diagonalize over certain complexity classes while preserving other complexity properties is given. We obtain some known results as well as some new ones as corollaries of our main theorem. The new results concern the complexity classes P, NP, co-NP, PSPACE, APT (almost polynomial time), R (random polynomial time), and the polynomial hierarchy.