generic photon creation