diff --git a/Contrib/RadiativeZPrime/AnomalousVVVVertex.h b/Contrib/RadiativeZPrime/AnomalousVVVVertex.h
--- a/Contrib/RadiativeZPrime/AnomalousVVVVertex.h
+++ b/Contrib/RadiativeZPrime/AnomalousVVVVertex.h
@@ -1,139 +1,148 @@
 // -*- C++ -*-
 #ifndef RADIATIVEZPRIME_AnomalousVVVVertex_H
 #define RADIATIVEZPRIME_AnomalousVVVVertex_H
 //
 // This is the declaration of the AnomalousVVVVertex class.
 //
 
 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
 
 namespace RadiativeZPrime {
 
 using namespace ThePEG;
 using namespace ThePEG::Helicity;
 
 /**
  * The AnomalousVVVVertex class implements the anomalous Vector-Vector-Vector vertex.
  *
  *  Only the member which evaluates the matrix element is implemented. The vertex
  *  is defined to be 
  *  \[ i\epsilon_{\mu\nu\alpha\beta}
  *      \varepsilon^\mu_1 \varepsilon^\nu_2 \varepsilon^\alpha_2 p_1^\beta\]
  *
  *
  * @see \ref AnomalousVVVVertexInterfaces "The interfaces"
  * defined for AnomalousVVVVertex.
  */
 class AnomalousVVVVertex: public AbstractVVVVertex {
 
 public:
 
   /**
    * Members to calculate the helicity amplitude expressions for vertices
    * and off-shell particles.
    */
   //@{
   /**
    * Evaluate the vertex.
    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
    * @param vec1 The wavefunction for the first  vector.
    * @param vec2 The wavefunction for the second vector.
    * @param vec3 The wavefunction for the third  vector.
    */
   virtual Complex evaluate(Energy2 q2, const VectorWaveFunction & vec1,
 			   const VectorWaveFunction & vec2,
 			   const VectorWaveFunction & vec3);
 
   /**
    * Evaluate the off-shell vector coming from the vertex.
    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
    * @param iopt Option of the shape of the Breit-Wigner for the off-shell vector.
    * @param out The ParticleData pointer for the off-shell vector.
    * @param vec2 The wavefunction for the second vector.
    * @param vec3 The wavefunction for the third  vector.
    * @param mass The mass of the off-shell particle if not taken from the ParticleData
    * object
    * @param width The width of the off-shell particle if not taken from the ParticleData
    * object
    */
   virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
 				      const VectorWaveFunction & vec2,
 				      const VectorWaveFunction & vec3,
 				      complex<Energy> mass=-GeV,
 				      complex<Energy> width=-GeV);
   //@}
 
   /**
    * Calculate the couplings. This method is virtual and must be implemented in 
    * classes inheriting from this.
    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
    * @param part1 The ParticleData pointer for the first  particle.
    * @param part2 The ParticleData pointer for the second particle.
    * @param part3 The ParticleData pointer for the third  particle.
    */
   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
 
+  /**
+   * Dummy setCouplings for a four point interaction 
+   * This method is virtual and must be implemented in 
+   * classes inheriting from this.
+   */
+  virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) {
+    assert(false);
+  }
+
 public:
 
   /**
    * The standard Init function used to initialize the interfaces.
    * Called exactly once for each class by the class description system
    * before the main function starts or
    * when this class is dynamically loaded.
    */
   static void Init();
 
 private:
 
   /**
    * The static object used to initialize the description of this class.
    * Indicates that this is an abstract class without persistent data.
    */
   static AbstractNoPIOClassDescription<AnomalousVVVVertex> initAnomalousVVVVertex;
 
   /**
    * The assignment operator is private and must never be called.
    * In fact, it should not even be implemented.
    */
   AnomalousVVVVertex & operator=(const AnomalousVVVVertex &);
 
 };
 
 }
 
 #include "ThePEG/Utilities/ClassTraits.h"
 
 namespace ThePEG {
 
 /** @cond TRAITSPECIALIZATIONS */
 
 /** This template specialization informs ThePEG about the
  *  base classes of AnomalousVVVVertex. */
 template <>
 struct BaseClassTrait<RadiativeZPrime::AnomalousVVVVertex,1> {
   /** Typedef of the first base class of AnomalousVVVVertex. */
   typedef Helicity::AbstractVVVVertex NthBase;
 };
 
 /** This template specialization informs ThePEG about the name of
  *  the AnomalousVVVVertex class and the shared object where it is defined. */
 template <>
 struct ClassTraits<RadiativeZPrime::AnomalousVVVVertex>
   : public ClassTraitsBase<RadiativeZPrime::AnomalousVVVVertex> {
   /** Return a platform-independent class name */
   static string className() { return "RadiativeZPrime::AnomalousVVVVertex"; }
   /**
    * The name of a file containing the dynamic library where the class
    * AnomalousVVVVertex is implemented. It may also include several, space-separated,
    * libraries if the class AnomalousVVVVertex depends on other classes (base classes
    * excepted). In this case the listed libraries will be dynamically
    * linked in the order they are specified.
    */
   static string library() { return "RadiativeZPrime.so"; }
 };
 
 /** @endcond */
 
 }
 
 #endif /* RADIATIVEZPRIME_AnomalousVVVVertex_H */
diff --git a/Contrib/RadiativeZPrime/FFZPrimeVertex.cc b/Contrib/RadiativeZPrime/FFZPrimeVertex.cc
--- a/Contrib/RadiativeZPrime/FFZPrimeVertex.cc
+++ b/Contrib/RadiativeZPrime/FFZPrimeVertex.cc
@@ -1,77 +1,77 @@
 // -*- C++ -*-
 //
 // This is the implementation of the non-inlined, non-templated member
 // functions of the FFZPrimeVertex class.
 //
 
 #include "FFZPrimeVertex.h"
 #include "ThePEG/Interface/ClassDocumentation.h"
 #include "ThePEG/Persistency/PersistentOStream.h"
 #include "ThePEG/Persistency/PersistentIStream.h"
 #include "RadiativeZPrimeModel.h"
 
 using namespace RadiativeZPrime;
 
 void FFZPrimeVertex::persistentOutput(PersistentOStream & os) const {
   os << _gl << _gr;
 }
 
 void FFZPrimeVertex::persistentInput(PersistentIStream & is, int) {
   is >> _gl >> _gr;
 }
 
 ClassDescription<FFZPrimeVertex> FFZPrimeVertex::initFFZPrimeVertex;
 // Definition of the static class description member.
 
 void FFZPrimeVertex::Init() {
 
   static ClassDocumentation<FFZPrimeVertex> documentation
     ("There is no documentation for the FFZPrimeVertex class");
 
 }
 
 void FFZPrimeVertex::setCoupling(Energy2 q2,tcPDPtr a,tcPDPtr,tcPDPtr) {
   norm(1.);
   // the left and right couplings
   int iferm=abs(a->id());
   if((iferm>=1 && iferm<=6)||(iferm>=11 &&iferm<=16)) {
     left(_gl[iferm]);
     right(_gr[iferm]);
   }
   else
     throw HelicityConsistencyError() << "FFZPrimeVertex::setCoupling "
 				     << "Unknown particle in Z vertex" 
 				     << Exception::runerror;
 }
 
 FFZPrimeVertex::FFZPrimeVertex() : _gl(17,0.0), _gr(17,0.0) {
   // PDG codes for the particles
   // the quarks
-  for(unsigned int ix=1;ix<7;++ix) {
+  for(long ix=1;ix<7;++ix) {
     addToList(-ix,ix,32);
   }
   // the leptons
-  for(unsigned int ix=11;ix<17;++ix) {
+  for(long ix=11;ix<17;++ix) {
     addToList(-ix,ix,32);
   }
 }
 
 void FFZPrimeVertex::doinit() {
   tcSMPtr sm = generator()->standardModel();
   tcRadiativeZPrimeModelPtr model = 
     dynamic_ptr_cast<tcRadiativeZPrimeModelPtr>(generator()->standardModel());
   double fact = 0.25*model->gZprime();
   for(int ix=1;ix<4;++ix) {
     _gl[2*ix-1]  = fact*(model->zPrimevd()  + model->zPrimead() );
     _gl[2*ix ]   = fact*(model->zPrimevu()  + model->zPrimeau() );
     _gl[2*ix+9 ] = fact*(model->zPrimeve()  + model->zPrimeae() );
     _gl[2*ix+10] = fact*(model->zPrimevnu() + model->zPrimeanu());
     _gr[2*ix-1]  = fact*(model->zPrimevd()  - model->zPrimead() );
     _gr[2*ix ]   = fact*(model->zPrimevu()  - model->zPrimeau() );
     _gr[2*ix+9 ] = fact*(model->zPrimeve()  - model->zPrimeae() );
     _gr[2*ix+10] = fact*(model->zPrimevnu() - model->zPrimeanu());
   }
   orderInGem(1);
   orderInGs(0);
   FFVVertex::doinit();
 }
diff --git a/Contrib/RadiativeZPrime/LHC-RadiativeZPrime.in b/Contrib/RadiativeZPrime/LHC-RadiativeZPrime.in
--- a/Contrib/RadiativeZPrime/LHC-RadiativeZPrime.in
+++ b/Contrib/RadiativeZPrime/LHC-RadiativeZPrime.in
@@ -1,123 +1,123 @@
 ##################################################
 # Example generator for the Raditative Z' model
 # in hadron collisions
 # The best way to use this is to make your own 
 # copy of this file and edit that as you require.
 #
 # The first section loads the model file which 
 # does not contain anything that users need to touch.
 #
 # The second section contains the user settings.
 ###################################################
-
+read snippets/PPCollider.in
 read RadiativeZPrime.model
 
 #
 # Other parameters for run
 # main run parameters
 cd /Herwig/Generators
-set LHCGenerator:NumberOfEvents 10000000
-set LHCGenerator:RandomNumberGenerator:Seed 31122001
-set LHCGenerator:PrintEvent 10
-set LHCGenerator:MaxErrors 10000
+set EventGenerator:NumberOfEvents 10000000
+set EventGenerator:RandomNumberGenerator:Seed 31122001
+set EventGenerator:PrintEvent 10
+set EventGenerator:MaxErrors 10000
 # these switch off the shower and hadronization
-#set LHCGenerator:EventHandler:CascadeHandler NULL
-#set LHCGenerator:EventHandler:HadronizationHandler NULL
+#set EventGenerator:EventHandler:CascadeHandler NULL
+#set EventGenerator:EventHandler:HadronizationHandler NULL
 
 # Intrinsic pT tune extrapolated to LHC energy
-set /Herwig/Shower/Evolver:IntrinsicPtGaussian 5.7*GeV
+set /Herwig/Shower/ShowerHandler:IntrinsicPtGaussian 5.7*GeV
 
 #
 #  Cuts on jets and photons
 #
 set /Herwig/Cuts/JetKtCut:MinKT 0.*GeV
 set /Herwig/Cuts/PhotonKtCut:MinKT 0.*GeV
 set /Herwig/Cuts/PhotonKtCut:MinEta -10
 set /Herwig/Cuts/PhotonKtCut:MaxEta  10
 
 #
 #  switch off Z decay modes if needed
 #
 #set /Herwig/Particles/Z0/Z0->b,bbar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->c,cbar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->d,dbar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->e-,e+;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->mu-,mu+;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->nu_e,nu_ebar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->nu_mu,nu_mubar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->nu_tau,nu_taubar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->s,sbar;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->tau-,tau+;:OnOff Off
 #set /Herwig/Particles/Z0/Z0->u,ubar;:OnOff Off
 # switch off spin correlations in 2-2 process if needed
 #set /Herwig/Particles/Z0/Z0->e-,e+;:Decayer /Herwig/Decays/DecayME0
 
 
 ##################################################
 #
 # This section contains the user defined settings
 #
 ##################################################
 cd /Herwig/NewPhysics
 
 # calculate decays for Z'
 insert NewModel:DecayParticles 0 /Herwig/Particles/Z'0
 
 # set coupling
 set RadiativeZPrime/Model:gZPrime 1.
 
 # use this to get the normal Herwig automatic process generation
 # incoming particles
 insert ResConstructor:Incoming 0 /Herwig/Particles/d
 insert ResConstructor:Incoming 1 /Herwig/Particles/dbar
 insert ResConstructor:Incoming 2 /Herwig/Particles/u
 insert ResConstructor:Incoming 3 /Herwig/Particles/ubar
 insert ResConstructor:Incoming 4 /Herwig/Particles/s
 insert ResConstructor:Incoming 5 /Herwig/Particles/sbar
 insert ResConstructor:Incoming 6 /Herwig/Particles/c
 insert ResConstructor:Incoming 7 /Herwig/Particles/cbar
 insert ResConstructor:Incoming 8 /Herwig/Particles/b
 insert ResConstructor:Incoming 9 /Herwig/Particles/bbar
 # resonance
 insert ResConstructor:Intermediates 0 /Herwig/Particles/Z'0
 # resonance decay products
-#insert ResConstructor:Outgoing 0 /Herwig/Particles/e+
+insert ResConstructor:Outgoing 0 /Herwig/Particles/e+
 insert ResConstructor:Outgoing 0 /Herwig/Particles/gamma
 #
 #  of use hand-coded matrix elements
 #
 cd /Herwig/MatrixElements
 #
 # q qbar -> Z' -> f f'bar
 #
 #create RadiativeZPrime::MEqq2ZPrime2ff MEqq2ZPrime2ff RadiativeZPrime.so
 #set MEqq2ZPrime2ff:Process Electron
 #set MEqq2ZPrime2ff:GammaZ ZPrime
-#insert SimpleQCD:MatrixElements[0] MEqq2ZPrime2ff
+#insert SubProcess:MatrixElements[0] MEqq2ZPrime2ff
 #
 # q qbar -> Z' > Z gamma (2 -> 2 process)
 #
 #create RadiativeZPrime::MEqq2ZPrime2ZGamma MEqq2ZPrime2ZGamma
-#insert SimpleQCD:MatrixElements[0] MEqq2ZPrime2ZGamma
+#insert SubProcess:MatrixElements[0] MEqq2ZPrime2ZGamma
 #
 # q qbar -> Z' -> Z gamma -> f f bar gamma (2 -> 3 process )
 #
 #create RadiativeZPrime::MEqq2ZPrime2ZGamma2ffGamma MEqq2ZPrime2ZGamma2ffGamma
-#insert SimpleQCD:MatrixElements[0] MEqq2ZPrime2ZGamma2ffGamma
+#insert SubProcess:MatrixElements[0] MEqq2ZPrime2ZGamma2ffGamma
 
 #
 #  Analysis options
 #
 cd /Herwig/Generators
 # don't warn if final-state quarks, needed if shower switched off
 set /Herwig/Analysis/Basics:CheckQuark 0
 #
 #  Simple analysis of Z' events
 # 
 create RadiativeZPrime::SimpleZPrimeAnalysis /Herwig/Analysis/SimpleZPrime
-insert LHCGenerator:AnalysisHandlers 0 /Herwig/Analysis/SimpleZPrime
+insert EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/SimpleZPrime
 
 #
 #  save the run
 #
-saverun LHC-RadiativeZPrime LHCGenerator
+saverun LHC-RadiativeZPrime EventGenerator
diff --git a/Contrib/RadiativeZPrime/RadiativeZPrime.model b/Contrib/RadiativeZPrime/RadiativeZPrime.model
--- a/Contrib/RadiativeZPrime/RadiativeZPrime.model
+++ b/Contrib/RadiativeZPrime/RadiativeZPrime.model
@@ -1,75 +1,72 @@
 ##################################################
 # Common setup for Randall-Sundrum models
 #
 # This file does not contain anything that 
 # users need to touch. User settings are in 
 # LHC-RadiativeZPrime.in
 #
 ###################################################
 #
 #  Particle Data object for the Zprime
 #
 ###################################################
 cd /Herwig/Particles
 create /ThePEG/ParticleData Z'0
 setup Z'0 32 Z'0 500.0 0.0 0.0 0.0 0 0 3 0
 defaultparticle Z'0
 ###################################################
 #
 #  Main directory and model object
 #
 ###################################################
 mkdir /Herwig/NewPhysics/RadiativeZPrime
 cd /Herwig/NewPhysics/RadiativeZPrime
 create RadiativeZPrime::RadiativeZPrimeModel Model RadiativeZPrime.so
 # SM couplings
-set Model:QCD/RunningAlphaS /Herwig/AlphaS
-set Model:EW/RunningAlphaEM /Herwig/AlphaEM
+set Model:QCD/RunningAlphaS /Herwig/Couplings/NLOAlphaS
+set Model:EW/RunningAlphaEM /Herwig/Couplings/AlphaEM
 set Model:EW/CKM /Herwig/CKM
 set Model:RunningMass /Herwig/RunningMass
 ###################################################
 #
 #  Vertices
 #
 ###################################################
 # create vertices
 mkdir /Herwig/Vertices/RadiativeZPrime
 cd /Herwig/Vertices/RadiativeZPrime
 create RadiativeZPrime::GammaZPrimeZVertex RZ_GammaZPrimeZVertex
 create RadiativeZPrime::FFZPrimeVertex RZ_FFZPrimeVertex
 cd /Herwig/NewPhysics/RadiativeZPrime
 # SM vertices
 set Model:Vertex/FFZ /Herwig/Vertices/FFZVertex
 set Model:Vertex/FFW /Herwig/Vertices/FFWVertex
 set Model:Vertex/FFH /Herwig/Vertices/FFHVertex
 set Model:Vertex/FFG /Herwig/Vertices/FFGVertex
 set Model:Vertex/FFP /Herwig/Vertices/FFPVertex
 set Model:Vertex/GGG /Herwig/Vertices/GGGVertex
 set Model:Vertex/GGGG /Herwig/Vertices/GGGGVertex
 set Model:Vertex/WWH /Herwig/Vertices/WWHVertex
 set Model:Vertex/WWW /Herwig/Vertices/WWWVertex
 set Model:Vertex/WWWW /Herwig/Vertices/WWWWVertex
 set Model:Vertex/HGG /Herwig/Vertices/HGGVertex
 set Model:Vertex/HPP /Herwig/Vertices/HPPVertex
 # Z' vertices
 set Model:Vertex/FFZPrime     /Herwig/Vertices/RadiativeZPrime/RZ_FFZPrimeVertex
 set Model:Vertex/GammaZPrimeZ /Herwig/Vertices/RadiativeZPrime/RZ_GammaZPrimeZVertex
 ###################################################
 #
 #  Setting to ensure spin correlations
 #  and generation of processes and decays
 #
 ###################################################
 cd /Herwig/NewPhysics
-insert /Herwig/EventHandlers/LEPHandler:PreCascadeHandlers 0 DecayHandler
-insert /Herwig/EventHandlers/LHCHandler:PreCascadeHandlers 0 DecayHandler
 # Set up the model framework
 set RadiativeZPrime/Model:ModelGenerator NewModel
 ###################################################
 #
 #  Choose RadiativeZPrimeModel over SM
 #
 ###################################################
 cd /Herwig/Generators
-set LEPGenerator:StandardModelParameters  /Herwig/NewPhysics/RadiativeZPrime/Model
-set LHCGenerator:StandardModelParameters  /Herwig/NewPhysics/RadiativeZPrime/Model
+set EventGenerator:StandardModelParameters  /Herwig/NewPhysics/RadiativeZPrime/Model