Singlet oxygen generation for solution kinetics: clean and simple