May be CJointDiagonalizer or sth like that?