use Poolable in PhotonBeam, see #10