diff --git a/.gitignore b/.gitignore
index 85f4252..1a79a52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 *.pyc
-FeynRules/*
\ No newline at end of file
+FeynRules/*
+*.log
+ehdecay.in
\ No newline at end of file
diff --git a/Rosetta/README b/Rosetta/README
index acc8519..3e528dc 100644
--- a/Rosetta/README
+++ b/Rosetta/README
@@ -1,751 +1,918 @@
 ################################################################################
-Rosetta: A translator between effective field theory bases
-
+     ____                  __  __
+    / __ \____  ____ ___  / /_/ /_ ___ _
+   / /_/ / __ \/ ___/ _ \/ __/ __/ __ `/
+  / _, _/ /_/ (__  )  __/ /_/ /_/ /_/ /
+ /_/ |_|\____/____/\___/\__/\__/\__,_/
+ 
+ An operator basis translator for Standard Model effective field theory
+ 
+Version 2.0, October 2016
+################################################################################
+   References
+################################################################################
+"Rosetta: an operator basis translator for Standard Model effective field theory"
+Eur.Phys.J. C75 (2015) no.12, 583 
+arXiv:1508.05895
 Adam Falkowski, Benjamin Fuks, Kentarou Mawatari, Ken Mimasu, Veronica Sanz, 
 Francesco Riva 
 
-Version 1.1, February 2016
-################################################################################
+"Basis-independent constraints on Standard Model Effective Field Theories with 
+ Rosetta"
+arXiv:1605.02684
+Contribution 18 in "Les Houches 2015: Physics at TeV colliders - new physics 
+working group report" (p.158)
+Jeremy Bernon, Alexandra Carvalho, Adam Falkowski, Bemjamin Fuks, 
+Florian Goertz, Kentarou Mawatari, Ken Mimasu and Tevong You
 
+################################################################################
+0)  Description
+################################################################################
 Rosetta is a modular and flexible package for effective field theory (EFT) basis 
 translation and communication with event generation tools. The primary 
 framework which Rosetta has been designed to translate into is the 
 phenomenological effective Lagrangian in the mass eigenbasis named 'BSM 
 Characterisation' or 'bsmc' for short. The motivation for this choice lies in 
 the availability of an implementation within the FeynRules framework to be 
 downloaded from 
             http://feynrules.irmp.ucl.ac.be/wiki/BSMCharacterisation
 which ensures the link with event generators and high-energy physics programs.
 
 The most basic functionality of Rosetta is to map a chosen set of input 
 parameters (the Wilson coefficients in a specific basis choice) onto the bsmc 
 coefficients such that the output can be employed within tools relying on 
 the BSM Characterisation Lagrangian description. As long as the input format 
 respects the SLHA 
 conventions sketched in Section 4, the user may define his/her own map to the 
 bsmc coefficients (or to any other basis implementation) and proceed with 
 event generation using the accompanying FeynRules implementation. Alternatively 
 the user may want to simply translate between two existing basis 
 implementations for other reasons such as the availability of a particular high 
 energy physics program taking the parameters of a given basis as input. The
 eHDECAY interface of Rosetta is an example of this.
 
 One of the key features of Rosetta is the possibility to easily define one’s 
 own input basis and directly use it in the context of many programs via the 
 translation functionality of Rosetta. The strength of this approach is that it 
 is much simpler than developing from scratch new modules for existing tools in 
 the context of a new basis.
 
 The tool consists of a Python package containing implementations of various EFT 
-bases and a command line tool 'translate' that performs the task of mapping a 
-given basis to a target output basis. The core of the package 
+bases and a command line tool 'rosetta' from which once can call a number of 
+interfaces described below. The main interface, 'translate', performs the task 
+of mapping a given basis to a target output basis. The core of the package 
 is based on the contents of the LHC Higgs Cross Section Working Group (HXSWG) 
 note (LHCHXSWG-INT-2015-001).
 
 ################################################################################
    Contents
 ################################################################################
 1) Contact
 2) Prerequisites
-3) Usage
-4) Input cards
-5) The SLHA package
-6) The basis class
-7) Implementing your own basis
-8) Flavor option
-9) eHDECAY interface
-10) Higgs signal strengths
-11) Lilith interface
+3) Package contents
+4) Usage & translate interface
+5) Input cards
+6) The SLHA package
+7) The basis class
+8) Implementing your own basis
+9) Flavor option
+10) eHDECAY interface
+11) Higgs signal strengths
+12) Lilith interface
+13) EWPO interface
 ################################################################################
 1) Contact
 ################################################################################
 Feel free to contact the authors with requests for features, bugs 
 etc. through k.mimasu@sussex.ac.uk.
 
 ################################################################################
 2) Prerequisites
 ################################################################################
 Python 2.7 or above in the 2.X series (not python 3).
 
 ################################################################################
-3) Package Contents
+3) Package contents
 ################################################################################
 # Main module
+
 Rosetta/                             # Top-level python package
 |-> __init__.py
-|-> config.txt                       # File storing configuration variables
 |   
-|-> bases/                           # Folder containing basis implementations
+|-> bases/                           # Package for basis implementations
+|   |
 |   |-> __init__.py
 |   |-> BSMCharacterisation.py
 |   |-> HiggsBasis.py
 |   |-> HISZ.py
 |   |-> SILHBasis.py
 |   |-> TemplateBasis.py
 |   |-> WarsawBasis.py
 |       
 |-> bin/                             # Folder for executables.
 |   |
-|   |-> translate                    # Command line tool to perform basis 
-|                                    # translation based on the implementations 
-|                                    # in Rosetta.
+|   |-> rosetta                      # Command line executable
 |                                    
 |-> Cards/                           # Sample SLHA-style parameter cards to be 
-|                                    # used as input.*
+|                                    # used as input.
 |                                    
+|-> config.txt                       # File storing configuration variables
+|
 |-> interfaces/                      # Interfaces to third party EFT/Higgs 
 |   |                                # software.
 |   |-> eHDECAY/
 |   |-> Lilith/
 |   |-> SignalStrengths/
+|   |-> EWPO/
 |       
-|   internal/
+|-> internal/
+|   |
 |   |-> __init__.py
 |   |-> basis/                       # Package containing base Basis class.
 |   |   
 |   |-> constants.py                 # Stores a number of useful dictionaries 
 |   |                                # mapping PDG particle IDs and SLHA input 
 |   |                                # numbers to names, default values for SM 
 |   |                                # inputs and particle masses, CKM matrix
 |   |                                # etc.
 |   |                                
 |   |-> errors.py                    # Rosetta Errors
 |   |   
 |   |-> machinery.py                 # Finds basis implementations and 
 |   |                                # constructs possible translation paths 
 |   |                                # between them.
 |   |                                
 |   |-> matrices.py                  # Higher level matrix objects inheriting 
 |   |                                # from structures in SLHA.py such as 
 |   |                                # HermitianMatrix, AntiSymmetricMatrix, ... 
 |   |                                # Contains a number of matrix operations 
-|   |                                # such as multiplication and element-wise  
-|   |                                # addition foruse in translation functions.
+|   |                                # such as multiplication and  addition for 
+|   |                                # use in translation functions.
 |   |
+|   |-> parsers.py                   # Command line subparser manager for 
+|   |                                # Rosetta interfaces
 |   |-> session.py                   # Session manager module.
 |   |   
 |   |-> settings.py                  # Settings manager module.
 |   |   
 |   |-> SLHA.py                      # Machinery for reading, manipulating and 
 |                                    # writing SLHA-style input cards. Partly 
 |                                    # inspired by pySLHA (A. Buckley, 
 |                                    # arXiv:1305.4194).
 |                                    
+|-> LICENSE                          # Software license.
 |-> README                           # You are here.
 
 # Existing basis implementations
 BSMCharacterisation.py               # General modified interaction Lagrangian 
                                      # up to dimension 6
                     
 HiggsBasis.py                        # The Higgs Basis as defined in the HXSWG 
                                      # draft. 
                     
-WarsawBasis.py                       # The Warsaw Basis defined in 
+WarsawBasis.py                       # The Warsaw Basis as defined in 
                                      # arXiv:1008.4884 and the HXSWG draft.
 
-SILHBasis.py                         # The SILH Basis defined in e.g 
+SILHBasis.py                         # The SILH Basis as defined in, e.g., 
                                      # arXiv:1303.3876 and the HXSWG draft.
 
 HISZ.py                              # The Hagiwara-Ishihara-Szalapski-
                                      # Zeppenfeld Basis for gauge-Higgs 
                                      # interactions defined in Phys.Rev. D48
                                      # (1993) 2182-2203  and the HXSWG draft.
 
 TemplateBasis.py                     # Template for a user-defined Basis class 
                                      # implemented in the Rosetta package. 
 
 
 * _diagonal and _universal versions of the cards are also included reflecting the 
 simplified input formats one can use when employing the --flavor option of 
 translate)
 
 ################################################################################
-3) Usage
+3) Usage & translate interface
 ################################################################################
-The translate command line tool takes an SLHA-style param card (see sample 
+The rosetta command line executable manages the desired functionality of the 
+tool based on the implemented interfaces included in the "interfaces" directory.
+Entering in the terminal:
+
+ >> bin/rosetta -h
+
+will bring up the command line documentation:
+
+ >> usage: rosetta [-h] [-s] [-v] [--force] INTERFACE ...
+ >> 
+ >> Main Rosetta command-line executable.
+ >> 
+ >> Global options:
+ >>   -h, --help       show this help message and exit
+ >>   -s, --silent     Suppress all warnings and take default answers to all
+ >>                    questions
+ >>   -v, --verbose    Activate verbose setting for program output
+ >>   --force          Take default answers to all questions
+ >> 
+ >> Arguments:
+ >>   INTERFACE
+ >>     translate      Translate in SLHA input card from one basis to another
+ >>     lilith         Standalone Lilith interface
+ >>     signalstrengths
+ >>                    Standalone SignalStrengths interface
+ >>     ewpo           EWPO interface
+ >>     defaultcard    Generate a parameter card for an implemented basis
+ >>     ehdecay        Standalone eHDECAY interface
+
+The desired interface the user would like to call is supplied as an argument to 
+the rosetta tool which will then invoke the corresponding sub-parser for 
+options and arguments specific to that interface. Rosetta has a few global 
+options to control the level of standard output and forcing default answers to 
+user prompts.
+
+The translate interface takes an SLHA-style param card (see sample 
 cards provided in Cards/ directory) in a particular basis and outputs a new 
-card in the specified basis (default is BSM Characterisation).  
+card in the specified basis (default is BSM Characterisation). 
 
 Command line documentation:
 
- >> usage: translate [-h] [-o OUTPUT] [-t {higgs,bsmc,template,silh,hisz,warsaw}]
- >>                  [-w] [-d] [-s] [-v] [--force]
- >>                  [-f {general,diagonal,universal}] [-e]
- >>                  PARAMCARD
+ >> usage: rosetta translate [-h] [-o OUTPUT] [--ehdecay] [--dependent] [--target]
+ >>                          [--flavor] [-w]
+ >>                          PARAMCARD
  >> 
- >> Read in an SLHA format parameter card in a particular basis and write a 
- >> new card in another implemented basis.
+ >> Read in an SLHA format parameter card in a particular basis and write a new
+ >> card in another implemented basis.
  >> 
  >> positional arguments:
  >>   PARAMCARD             Input parameter card.
  >> 
  >> optional arguments:
  >>   -h, --help            show this help message and exit
  >>   -o OUTPUT, --output OUTPUT
  >>                         Output file name. Default: [PARAMCARD]_new
- >>   -t {silh,higgs,mass,template,warsaw}, --target {silh,higgs,mass,
- >>                                                   template,warsaw}
- >>                         Basis into which to translate, default:bsmc
+ >>   --ehdecay             Interface with eHDECAY for Higgs branching fractions.
+ >>   --dependent           Also write out dependent parameters to output card
+ >>   --target              Basis into which to translate. Allowed values are:
+ >>                         higgs, bsmc, template, silh, hisz, warsaw (default =
+ >>                         bsmc)
+ >>   --flavor              Specify flavor structure. Allowed values are: general,
+ >>                         diagonal, universal (default = general).
  >>   -w, --overwrite       Overwrite any pre-existing output file.
- >>   -s, --silent          Suppress all warnings and take default answers to
- >>                         all questions.
- >>   -v, --verbose         Activate verbose setting for program output.
- >>   --force               Take default answers to all questions.
- >>   -f {general,diagonal,universal,MFV}, --flavor {general,diagonal,
- >>                                                   universal}
- >>                         Specify flavor structure, default : 'general'
- >>   -e, --ehdecay         Interface with eHDECAY for Higgs branching 
- >>                         fractions.
 
 Rosetta will read the SLHA card, look for the 1st element of block "basis", and 
 see if any implemented basis classes have this unique identifier. If so, Rosetta 
 will fill an instance of this class with the values of the parameters specified 
 in the parameter card and perform certain consistency checks, making sure all 
-required parameters are defined etc. Any dependent parameters are then 
-calculated and the translation is performed between the input basis and the 
-target basis (bsmc by default), provided the right translation path 
-exists. An SLHA style parameter card wil then written out in the new basis. 
+required parameters are defined etc. 
+
+Any dependent parameters are then calculated and the translation is performed 
+between the input basis and the target basis (bsmc by default), provided the 
+right translation path exists. An SLHA style parameter card will then written 
+out in the new basis. 
+
 Rosetta can optionally interface with eHDECAY provided a translation path 
 between the input basis and the SILH basis exists. The results of eHDECAY 
 are also written to the SLHA card in the form of a decay block for the Higgs. 
 See section 8 for more details.
 
 Example basic usage:
 
 To translate from the SILH basis to the BSMC Lagrangian, one could take 
 Cards/SILHBasis.dat as a template input card and run:
 
-bin/translate -o my_out.dat my_input.dat
+bin/rosetta translate -o my_out.dat my_input.dat
 
 To translate to the Warsaw basis instead, one should use the -t option and 
 specify 'warsaw' as the target basis:
  
-bin/translate -o my_out_warsaw.dat -t warsaw my_input.dat
+bin/rosetta translate -o my_out_warsaw.dat --target warsaw my_input.dat
 
 Example usage with the flavor option (See also section 8):
 
-The flavor option '-f' currently accepts the arguments 'general', 'diagonal' 
-and 'universal'. It tells Rosetta to assume a particular flavor structure in the 
-input file. When a translation to a basis which is NOT the bsmc is 
-specified via the '-t' option, the output file block structure also reflects 
-this choice on the flavor structure. 
+The flavor option '--flavor' currently accepts the arguments 'general', 
+'diagonal' and 'universal'. It tells Rosetta to assume a particular flavor 
+structure in the input file. When a translation to a basis which is NOT the 
+bsmc is specified via the '--target' option, the output file block structure 
+also reflects this choice on the flavor structure. 
 
 - 'general' : The default setting corresponding to the full flavor structure.
 - 'diagonal' : Keep only the diagonal terms in the flavor matrices i.e. the 
                (1,1), (2,2) & (3,3) entries.
 - 'universal' :  Coefficients are all flavor diagonal and universal.
 
 As an example, taking Cards/WarsawBasis_diagonal.dat as a template input, the 
 command:
 
-bin/translate my_input_diagonal.dat -f diagonal -o my_out_diag.dat
+bin/rosetta translate my_input_diagonal.dat --flavor diagonal -o my_out_diag.dat
 
 Will generate a BSMC param card with only the diagonal flavor 
 components non-zero. On the other hand,
 
-bin/translate my_input_diagonal.dat -t silh -f diagonal -o my_out_diag_silh.dat 
+bin/rosetta translate my_input_diagonal.dat --target silh -flavor diagonal -o my_out_diag_silh.dat 
 
 Will generate a SILH basis parameter card respecting the original flavor 
 structure, i.e. that of Cards/SILHBasis_diagonal.dat.
 
 In general, one should ensure that the block structure of the input card 
 respects the flavor option specified, otherwise, Rosetta will crash.
 
 Example usage with the eHDECAY option:
 
-bin/translate my_input.dat -t silh -e -o my_out_ehdecay_silh.dat 
+bin/rosetta translate my_input.dat --target silh --ehdecay -o my_out_ehdecay_silh.dat 
 
 This command will generate the same output as the basic usage example with the 
 addition of an SLHA decay block for the Higgs with the results of the eHDECAY 
 run. It will also save the eHDECAY input file fed to the program as 'ehdecay.in'.
 
 ################################################################################
 4) Input cards
 ################################################################################
 Rosetta is designed to read input cards in a format similar to the SUSY Les 
 Houches Accord (SLHA) detailed in http://arxiv.org/abs/hep-ph/0311123. 
 Sample cards can be found in the Cards/ directory. 
 
 The SHLA reader looks for block structures in a case insensitive way i.e.
 
 >> BLOCK MYBLOCK
 
 Specifically it will search for blocks MASS, SMINPUTS and BASIS. The basis into 
 which the card is read is taken from the 0 entry in the BASIS block. This name 
 should match a basis declared in implemented.py (see next section).
 Block elements should be named by placing a comment alongside each 
 entry. The parameter name will be taken as the first non-whitespace characters 
 following the '#' character.
 
 The main difference between the input format of Rosetta and SLHA is that names 
 of parameters are required for new physics parameter blocks. Parameters can 
 then be referenced by name or number in the corresponding block or, 
 alternatively, by name only from the SHLA.Card instance stored in as self.card 
 in the basis instance.
 
 >>BLOCK MYBLOCK
 >>  0 3.14159E+00 # pi
 >>  1 1.97327E-01 # hbarc_GeVfm
 >>  Block sminputs 
 >>      1   1.325070e+02       #    aEWM1  (white space doesn't matter)
 ETC.
 
 The block structure of the new physics couplings is basis dependent and should 
 be declared in the `blocks` data member of the basis class. This should be a 
 python dictionary with block names as keys and lists of parameter names as 
 values. The ordering of the list determines the entry number of each parameter.
 For example,
 
 >> blocks = {'ONE':['A','B','C'], 'TWO':['D','E','F']}
 
 will generate the following block structure:
 
 >> block one
 >>     0 0.0 # A
 >>     1 0.0 # B
 >>     2 0.0 # C
 >>
 >> block two
 >>     0 0.0 # D
 >>     1 0.0 # E
 >>     2 0.0 # F
 
 The reader reads all lines until the next occurrence of 'BLOCK' or 'DECAY', 
 ignoring leading and trailing white space and all lines beginning with a '#' as 
 well as lines that do not match the expected pattern detailed above. For blocks 
 BLOCKIN and SMINPUTS, the reader stores special SLHA.Block instances as 
 self.mass and self.inputs data member of the basis instace.
 
 >> block mass 
 >>     5 4.700000e+00 # MB 
 >>     6 1.730000e+02 # MT 
 >>    15 1.730000e+02 # MTAU
 >>    23 9.118800e+01 # MZ 
 >>    25 1.250000e+02 # MH 
 
 Block basis should have one element corresponding to the "name" attribute of an 
 existing basis implementation.
 
 >> block BASIS
 >> 0 MyBasis # name of basis
 
 Rosetta will also accept BLOCK structures in matrix format with multiple 
 counters e.g.
 
 >> block MAT
 >>   1  1   1.0e-01 # MAT1x1
 >>   1  2   1.0e-01 # MAT1x2
 >>   2  1   1.0e-01 # MAT2x1
 >>   2  2   1.0e-01 # MAT2x2
 
 These will then be indexable also by name or by index [i,j,...]. The naming 
 convention for the individual elements adopted is to suffix the block name with 
 the indices separated by an 'x' character as shown above. Complex parameters 
 should also have a blocks containing their imaginary parts prefixed by 'IM'. 
 The naming convention then adopted there is to prefix the real parts with 'R' 
 and the imaginary parts with 'I'. The name of complex parameter as a whole will 
 be prefixed with 'C'. If our previous example matrix were complex, the two 
 following blocks would be defined
 
 >> block MAT
 >>   1  1   1.0e-01 # RMAT1x1
 >>   1  2   1.0e-01 # RMAT1x2
 >>   2  1   1.0e-01 # RMAT2x1
 >>   2  2   1.0e-01 # RMAT2x2
 >>
 >> block IMMAT
 >>   1  1   1.0e-01 # IMAT1x1
 >>   1  2   1.0e-01 # IMAT1x2
 >>   2  1   1.0e-01 # IMAT2x1
 >>   2  2   1.0e-01 # IMAT2x2
 
 ################################################################################
 5) The SLHA package
 ################################################################################
 Rosetta contains a basic SLHA card reader/writer that can parse and store the 
 contents of an SLHA formatted input card. Individual blocks and decays are 
 stored as SLHA.Block and SLHA.Decay instances that can be indexed and iterated 
-over in the same way as python dictionaries.
+over in the same way as python dictionaries, in a case-insensitive way.
  
     SLHA.Block is essentially a named OrderedDict storing index:value pairs 
     corresponding to the elements of an SLHA block. SLHA.Block has a "name" 
     attribute and forces keys to be of type `int` or to be castable via int().
     
     SLHA.Matrix is essentially a named OrderedDict storing index:value pairs 
     corresponding to the elements of an SLHA block with multiple counters. 
     SLHA.Matrix has a "name" attribute and forces keys to be tuples .
 
     SLHA.Decay is an OrderedDict with a "PID" attribute for the particle whose 
     decay information it contains as well as a "total" attribute to store the 
     total width of the particle. Each entry key is a tuple if PIDs corresponding 
     to the decay products and the associated value is the branching fraction of 
     that particular channel. 
     
     SLHA.NamedBlock is a subclass of SHLA.Block with the additional feature that
     each block entry is associated to a name in accordance with the way Rosetta 
     can read the input card. Each value can then be accessed either by key or 
     by value.
     
     SLHA.NamedMatrix, analogously to NamedBlock, adds the naming feature to 
     matrix objects.
     
     SLHA.Card is the object storing the various SLHA blocks and decays. Indexing 
     such an object with an integer will look for a Decay object associated to 
     that PID, while indexing with a string will look for a parameter with that 
     name in one of its NamedBlock instances. SLHA.Card objects possess two 
     OrderedDicts, "blocks" and "decays" storing the individual 
     SLHA.(Named)Block and SLHA.Decay instances. 
 
 Each SLHA object can print itself out in the usual SLHA format, while the 
 SLHA.Card object has a write() function to write itself to a file. There also 
 exist complex versions of the Block, Matrix, NamedBlock, and NamedMatrix 
 objects named CBlock, CMatrix, CNamedBlock, and CNamedMatrix which can store 
 complex values and have two of their corresponding real containers storing 
 their real and imaginary parts in _re and _im attributes. 
 
 ################################################################################
 6) The basis class
 ################################################################################
 Each implemented basis in Rosetta is a python class inheriting from the `Basis` 
 class in Rosetta/internal/basis/basis.py. They are designed to be instantiated 
 either empty or with an SLHA format parameter card specified by the param_card 
 option. The contents of the card are stored as an SLHA.Card object and the 
 special blocks "mass" and "sminputs" are stored as SLHA.NamedBlock instances in 
 self.mass and self.input respectively. Some of the key data members are:
 
-self.name   
-            - Unique basis identifier. This will be compared to the 0th element 
+self.name   - Unique basis identifier. This will be compared to the 0th element 
               of the block basis in the SLHA parameter card to ensure that 
               right basis class is being instantiated for a given input card.
               
-self.card   
-            - SLHA.Card instance containing SLHA.NamedBlock and SLHA.Decay 
+self.card    - SLHA.Card instance containing SLHA.NamedBlock and SLHA.Decay 
               instances corresponding to those specified in the parameter card. 
               Object names taken to be the first non-whitespace characters 
               after a "#" character in a block or parameter definition are also 
               stored.
               
 self.mass    - SLHA.NamedBlock instance for the "mass" block
             
 self.inputs  - SLHA.NamedBlock instance for the "sminputs" block
 
-self.name   - Unique basis identifier
-
 self.required_inputs
             - A set of SLHA input IDs denoting those required to be defined in  
               the SLHA input card in order to perform implemented translations. 
               
 self.required_masses
             - A set of PDG particle IDs denoting particles whose mass is 
               required to be defined in the SLHA input card in order to perform 
               implemented translations. 
               
 self.independent
             - A list of coefficients deemed to be input parameters to the basis 
               implementation. 
               
 self.blocks (optional but strongly recommended)
             - A dictionary of name:coefficients pairs where name is the SLHA 
               block name desired and coefficients is a list of coefficient 
               names associated to that block.
 
 self.flavored 
             - A dictionary with keys corresponding to the names of data blocks 
               possessing flavor flavor structure. These will be assumed to be 
               3 by 3 matrices and will be acted upon by the -f or --flavor 
               option of the translate script. The values of the dictionaries 
               should, in turn also be dictionaries detailing the desired 
               properties of said matrix. The keys 'domain', 'kind' and 'cname' 
               are accepted.
 
 The options of a matrix listed in the 'flavored' attribute can be as follows:
     'domain': 'real' or 'complex'
     'kind': 'symmetric', 'antisymmetric', 'hermitian', 'general'
     'cname': the name given to each element of the matrix in between the prefix 
              and suffixes described by the convention in section 4. If not set, 
              this will default to the block name. 
 
 self.blocks, self.flavored, self.required_inputs and self.required_masses 
 should be defined in accordance with block structure of the input SLHA 
 parameter card, Blocks "sminput" and "mass" respectively (the Z and Higgs 
 masses are also stored in self.inputs). Specifically, the block (matrix) names 
 specified as keys in self.blocks (self.flavored) should match block names in 
 the SLHA card as well as the names and indices of their elements (taken to be 
 the order in which the appear in the list associated to the block in 
 self.blocks or the naming conventions described above for elements of 
 self.flavored). The blocks "mass" and "sminputs" of the SLHA card should 
 minimally contain the entries specified in required_masses and required_inputs 
 respectively. A number of checks related to these definitions are performed by 
 check_param_data(), check_mass() and check_sminputs() on the data read in from 
 the parameter card. These can be found in the basis/checkers.py module.
 
 Basis and any of its subclasses are designed to work similarly to a 
 dictionary in that parameter values can be referenced by name (duplicate 
 names in different blocks are not handled properly so try to avoid them). 
 A value can be referenced in various ways, see below example where the 
 parameter named 'D' is stored as entry 3 in the block 'letters' written in 
 'mycard.dat':
     
     >> instance = MyBasis(param_card='mycard.dat')
     >> instance['A'] = 0.5 # set value according to name in SLHA card
     >> instance.card['A'] = 0.5 # equivalent to the above
     >> instance.card.blocks['letters']['A'] = 0.5 # from block by name 
     >> instance.card.blocks['letters'][3] = 0.5 # from block by entry 
 
 A number of other container methods are defined for easy of manipulation:
 
     >> print len(instance) # number of EFT coefficients
     >> for i in instance: # iterator methods also defined
     >>     print i
     >> for k, v in instance.items(): # name, value pairs
     >>     print k, v
 
 Matrix parameters can be indexed as follows (all methods are equivalent):
 
     >> instance['mat'][1,2] = 0.5 # set (1,2) element of 
     >> instance.card['mat'][1,2] = 0.5 # equivalent to the above
     >> instance.card.matrices['mat'][1,2] = 0.5 #  equivalent
     >> instance['mat1x2']= 0.5 # from instance by name
     >> instance['mat']['mat1x2']= 0.5 # from matrix by name
     >> instance.matrices['mat']['mat1x2']= 0.5 # equivalent
     
 Complex matrix parameters have the additional functionality of setting 
 individual real or imaginary parts by name or accessing the 
 complex value by name.
 
     >> instance['cmat'][1,2] = complex(0.5, 0.5) # set (1,2) element 
     >> instance['Ccmat1x2']= complex(0.5, 0.5) # complex value by name
     >> instance['Rcmat1x2']= 0.5 # real part by name
     >> instance['Icmat1x2']= 0.5 # imaginary part by name
 
 basis/io.write_param_card() writes the contents of the self.newcard into a new 
 SLHA formatted file. Another useful method basis/io.write_template_card() 
 generates and empty parameter card according to the block definitions and 
 required inputs of a given basis class.
 
 ################################################################################
 7) Implementing your own basis
 ################################################################################
 Implementing ones own basis involves creating a file inside the bases/ directory 
 of Rosetta, alongside HiggsBasis.py etc., containing a subclass of Basis. The 
 only required data member to be defined is self.name. However, users will 
 mostly likely want to define self.independent, self.required_inputs and 
 self.required_masses as well as structure their basis into blocks using 
 self.blocks (Rosetta will create one block named "newcoup" if self.blocks is 
 not defined) and self.flavored. An example is shown below where the required 
 data members are defined outside the class construtor so as to instrinsically 
 belong to all instances of the class. This code would be saved in 
 Rosetta/MyBasis.py. It is essential that the file name match the class name.
 
     >> from internal import Basis
     >>
     >> class MyBasis(Basis.Basis):
     >>    name = 'mybasis'
     >>    independent = {'A', 'B', 'C', 'one', 'two', 'MYxMAT'}
     >>    required_inputs = {1, 2, 4}   # a_{EW}^{-1}, Gf and MZ required
     >>    required_masses = {24, 25, 6} # Z, Higgs and top masses required
     >>    blocks = {'letters':['A', 'B', 'C', 'D']
     >>              'numbers':['one', 'two', 'three']} # Expected block structure
     >>    flavored = {'MYxMAT':{'kind':'hermitian',
     >>                           'domain':'complex',
     >>                           'cname':'mat'}} # Hermitian flavor matrix
     >> 
 
 The list self.independent stores the basis parameters which should be read 
 in from the SLHA card. Any other parameters declared in self.blocks are assumed 
 to be set by the user in the calculate_dependent() method. The user can define 
 calculate_dependent() to set any dependent parameters (those listed in in 
 self.blocks but not in self.independent) and any number of additional 
 functions, usually to translate the coefficients into a given basis which sets 
 the SLHA.Card object, self.newcard. Alternatively, if it is more simple, 
 the dependent attribute can be defined to explicitly tag coefficients as not 
 independent.
 
 The input card for this example containing the independent parameters would 
 look like:
 
     block letters
       1  0. # A
       2  0. # B
       3  0. # C
       
     block numbers
       1  0. # one
       2  0. # two
       
     block MYxMAT
       1  1  0. # Rmat1x1
       1  2  0. # Rmat1x2
       1  3  0. # Rmat1x3
       2  2  0. # Rmat2x2
       2  3  0. # Rmat2x3
       3  3  0. # Rmat3x3
      
     block IMMYxMAT
       1  1  0. # Imat1x1
       1  2  0. # Imat1x2
       1  3  0. # Imat1x3
       2  2  0. # Imat2x2
       2  3  0. # Imat2x3
       3  3  0. # Imat3x3
 
 Only the non-redundant elements of a matrix should be defined in the input card 
 e.g. the upper triangle for the hermitian matrix 'MYxMAT'.
 
 Rosetta differentiaties from general utility functions and translation 
 functions using the "translation" decorator. Any function designed to take you 
 to another existing basis implemenation should be decorated with the 
 "translation" decorator with an argument corresponding to the name of the 
 target basis. This name should match the unique name of an existing basis 
 implementation also contained in the Rosetta root directory. Below would be 
 example of a translation function from our example to the Warsaw Basis.
 
     >> @Basis.translation('warsaw') # identifies as translator to warsaw 
     >> def mytranslation(self, instance):
     >>     instance['cWW'] = 10.
     >>     instance['cpHl11'] = self['myparam']
     >>     return instance
 
 The translating function must ONLY take an instance of the target class as its 
 second argument alongside the default "self" argument for a class method. In 
 this way, Rosetta can universally and automatically detect and use intended 
 translation functions.
 
 Additional modifications to e.g. SM input parameters or particle masses should 
 be implemented in the modify_inputs() function.
 
     >> def modify_inputs(self):
     >>     self.mass[24]= 100.
     
 Any python module saved in the root directory of the Rosetta package is 
 assumed to be a basis implementation. Furthermore, the class name of the 
 basis implementation MUST be the same as the file name of the python 
 module. In our example above, the class `MyBasis` would have to be saved in 
 a file named MyBasis.py. This is to help Rosetta automatically identify the 
 possible translation paths between bases. Any such class can then be used 
 by the command line script "translate". For example, Rosetta should be able 
 to figure out all possible multi-step translations.
 
 The user is referred to Rosetta/TemplateBasis.py for a toy working example of a 
 user defined basis.
 
 ################################################################################
 8) Flavor option
 ################################################################################
-The -f or --flavor option of Rosetta's translate tool allows users to specify 
+The  --flavor option of Rosetta's translate tool allows users to specify 
 special structure for parameters with flavor indices. These correspond to 
 those decared in the flavored attribute of a class implementation and have 3 by 
 3 flavor indices. Choosing a particular value for the flavor option amounts to 
 modifying the intended input and output blocks of a given translation. The 
 allowed options are 'general' 'diagonal' and 'universal'. 'general' is the 
 default setting while 'diagonal' only retains the diagonal elements of said 
 flavor matrices. 'universal' assumes no flavor structure whatsoever and set 
 all flavor matrices to be universal and diagonal. 
 In every reduced flavor case, the number of input and output parameters 
 decreases. The input card for the 'diagonal' option should only define the 
 (1,1) (2,2) and (3,3) elements of each block while that of the 'universal' 
 assumption should only define the (1,1) element. The output file will also 
 reflect this except in the case where the target is the BSMC Lagrangian since 
 it is important for this format to correctly interface with the FeynRules model 
 implementation where SLHA blocks with matrix structures should declare all 
 elements. 
 
 ################################################################################
 9) eHDECAY interface
 ################################################################################
 
 interfaces/eHDECAY/            # eHDECAY interface Package
 |-> __init__.py
 |-> eHDECAY.py                 # Interface implementation
 |-> errors.py                  # package specific errors
 
 A useful program based on HDECAY (arXiv:hep-ph/9704448) for calculating the 
 Higgs total width was developed in 2014 and is described in arXiv:1403.3381. 
 The program takes as input a number of parameters in the SILH basis to calculate
 the width and branching ratios to SM particles optionally including Electroweak 
-corrections. In order to have this working correctly the user must modify 
+corrections. 
+
+In order to have this working correctly the user must modify 
 Rosetta/config.txt, putting the absolute path to the base directory of a local 
-eHDECAY installation. It goes without saying that there must exist a possible 
-translation path between the input basis and the SILH basis. The 
-internal/eHDECAY.py module then performs this translation, rescales the 
-relevant parameters of the Rosetta SILH basis implementation to match the 
-conventions of arXiv:1403.3381 and executes a run of eHDECAY. The results are 
-stored and a copy of the input file "ehdecay.in" is saved locally. The results 
-are then written to and SLHA decay block in the output card. The relevant 
-input parameters are:
+eHDECAY installation. There must exist a possible translation path between the 
+input basis and the SILH basis. The internal/eHDECAY.py module then performs 
+this translation, rescales the relevant parameters of the Rosetta SILH basis 
+implementation to match the conventions of arXiv:1403.3381 and executes a run 
+of eHDECAY. The results are stored and a copy of the input file "ehdecay.in" is 
+saved locally. The results are then written to and SLHA decay block in the 
+output card. The relevant input parameters are:
 
     SM inputs: # ALL masses must be nonzero for eHDECAY to give a finite result
     'MC', 'MB', 'MT', 'MMU', 'MTAU, # SM fermion masses
     'MH', 'MZ', 'MW', 'aEWM1' 'Gf', # EW input masses, (alpha_EW)^-1, G_Fermi
     'aSMZ'                          # alpha_S(MZ)
 
     SILH coefficients:
     'CHbar' , 'CTbar' , 'Ctaubar', 'Cmubar', 'Ctbar',
     'Cbbar' , 'Ccbar' , 'Csbar'  , 'CWbar' , 'CBbar',
     'CHWbar', 'CHBbar', 'Cgambar', 'Cgbar'
 
     eHDECAY option:
     'IELW' # Electroweak corrections switch (1:on, 0:off)
 
 eHDECAY can potentially give negative branching fractions and even a negative 
 total Higgs width for unreasonable choices of EFT parameters. A negative total 
 width is currently not allowed while negative branching fractions are not 
 handled and will be omitted from the parameter card.
 
+The interface has a standalone version that simply prints the SLHA decay block 
+for the Higgs or can be invoked as an option in the translate interface
+
+Command line documentation:
+
+ >> usage: rosetta ehdecay [-h] [-o OUTPUT] [--dependent] [--EW] [--flavor] [-w]
+ >>                        PARAMCARD
+ >> 
+ >> Run the eHDECAY interface to obtain the Higgs branching fractions
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD             Input parameter card
+ >> 
+ >> optional arguments:
+ >>   -h, --help            show this help message and exit
+ >>   -o OUTPUT, --output OUTPUT
+ >>                         Write out a new SLHA card containing the decay block
+ >>   --dependent           Also write out dependent parameters to output card
+ >>   --EW                  switch on electroweak corrections in eHDECAY
+ >>   --flavor              Specify flavor structure. Allowed values are: general,
+ >>                         diagonal, universal (default = general)
+ >>   -w, --overwrite       Overwrite any pre-existing output file
 
 ################################################################################
 10) Higgs Signal Strengths
 ################################################################################
 
 interfaces/SignalStrengths/   # SignalStrengths interface Package
 |-> __init__.py
 |-> BR/                       # Folder storing tabulated SM Higgs branching 
 |   |                         # fractions and total widths provided by the 
 |   |                         # LHCHXSWG.
 |   |-> ff.dat
 |   |-> VV.dat
 |       
 |-> production.py             # Calculation of higgs production rescaling 
 |                             # factors.
 |                             
 |-> decay.py                  # Calculation of higgs decay partial width 
 |                             # rescaling factors, optionally using Rosetta's 
 |                             # eHDECAY interface.
 |                             
 |-> errors.py                 # Package-specific errors.
 |   
 |-> loopfunctions.py          # Fermion and gauge boson triangle loop functions.
+|-> README                     # A copy of the contents of this section
 
 Rosetta provides an interface through which to calculate the SM Higgs signal 
 strengths given an input of EFT parameters in a given basis. The 'mu' factors 
 are calculated for each production and decay channel by rescaling the 
 production cross sections partial widths, and total width of the Higgs. The 
 approach implemented is summarised in arXiv:1505.00046, where analytical or 
-numerical formulae each of the rescaling factors are provided. A valid 
-translation path to the BSM Characterisation basis must be present.
-This Package is used by the Lilith interace.
+numerical formulae each of the rescaling factors are provided. 
+
+A translation path to the BSM Characterisation basis must be present.
+
+This package has a standalone version that prints out a list of signal 
+strengths and is also used internally by the Lilith interace.
+
+Command line documentation:
+
+ >> usage: rosetta signalstrengths [-h] [--squares] [--sqrts] [--flavor] PARAMCARD
+ >> 
+ >> Run the SignalStrengths interface to obtain the mu's for all of the Higgs
+ >> production and decay channels.
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --squares   Retain quadratic order in EFT coefficients (NOT IMPLEMENTED)
+ >>   --sqrts     Specify pp collider centre-of mass energy in TeV. Allowed values
+ >>               are: 7, 8, 13 (default = 8).
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+              universal (default = general).
 
 ################################################################################
 11) Lilith interface
 ################################################################################
 
 interfaces/Lilith/             # Lilith interface Package
 |-> __init__.py
 |-> Lilith.py                  # Interface implementation
 |-> errors.py                  # package specific errors
+|-> README                     # A copy of the contents of this section
 
 A useful program for computing the combined likelihood using the latest Higgs 
 signal strength data is described in arXiv:1502.04138. Using the 
 SignalStrengths interface, Rosetta constructs the Higgs signal strengths and 
 feeds them to Lilith to obtain the chi-squared goodness of fit measure to the 
 Higgs data as calculated by a local installation of Lilith. 
 
 In order to have this working correctly the user must modify 
 Rosetta/config.txt, putting the absolute path to the base directory of a local 
 Lilith installation. The function calculate_likelihood(basis) performs the task 
 described above where basis is a Rosetta basis instance.
 
+A translation path to the BSMCharacterisation "basis" must be present.
+
+Command line documentation:
+
+ >> usage: rosetta lilith [-h] [--squares] [--flavor] PARAMCARD
+ >> 
+ >> Run the Lilith interface to obtain the likelihood value with respect to the
+ >> latest Higgs signal strength data for a particular point in EFT parameter
+ >> space
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --squares   Retain quadratic order in EFT coefficients in the
+ >>               SignalStrengths interface (NOT IMPLEMENTED)
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+ >>               universal (default = general)
+ 
+################################################################################
+11) EWPO interface
+################################################################################
+
+interfaces/EWPO/               # EWPO interface Package
+|-> __init__.py
+|-> chisq.py                   # delta chi-squared and p-value function s
+|-> errors.py                  # package specific errors
+|-> interface.py               # rosetta command line interface implementation
+|-> likelihood/                # Numerical data for likelihood
+|   |-> c0.dat
+|   |-> c0_MFV.dat
+|   |-> sigmainv2.dat
+|   |-> sigmainv2_MFV.dat
+|-> README                     # A copy of the contents of this section
+
+An implementation of a global likelihood using low energy and electroweak 
+precision observables. Using a numerical implementation of a pre-calculated 
+delta chi-squared distribution (described in the Les Houches proceedings 
+contribution) in a set of Higgs Basis parameters, the interface evaluates the 
+likelihood of a given point in EFT parameter space. 
+
+A translation path to the Higgs Basis must be available.
+
+The option of flavor universality is available and reduces the number of 
+degrees of freedom from 36 to 23.
+
+Command line documentation:
+
+ >> usage: rosetta ewpo [-h] [--flavor] PARAMCARD
+ >> 
+ >> Run the EWPO interface to obtain the compatibility of a parameter point with a
+ >> fit to electroweak precision observables
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+ >>               universal (default = general).
+
+
 ################################################################################
-Rosetta: A Higgs Effective Field Theory basis translator
+Rosetta: an operator basis translator for Standard Model effective field theory
 ################################################################################
 
diff --git a/Rosetta/interfaces/EWPO/README b/Rosetta/interfaces/EWPO/README
new file mode 100644
index 0000000..401ca73
--- /dev/null
+++ b/Rosetta/interfaces/EWPO/README
@@ -0,0 +1,44 @@
+################################################################################
+Rosetta EWPO interface
+################################################################################
+interfaces/EWPO/               # EWPO interface Package
+|-> __init__.py
+|-> chisq.py                   # delta chi-squared and p-value function s
+|-> errors.py                  # package specific errors
+|-> interface.py               # rosetta command line interface implementation
+|-> likelihood/                # Numerical data for likelihood
+|   |-> c0.dat
+|   |-> c0_MFV.dat
+|   |-> sigmainv2.dat
+|   |-> sigmainv2_MFV.dat
+|-> README                     # you are here
+
+An implementation of a global likelihood using low energy and electroweak 
+precision observables. Using a numerical implementation of a pre-calculated 
+delta chi-squared distribution (described in the Les Houches proceedings 
+contribution) in a set of Higgs Basis parameters, the interface evaluates the 
+likelihood of a given point in EFT parameter space. 
+
+A translation path to the Higgs Basis must be available.
+
+The option of flavor universality is available and reduces the number of 
+degrees of freedom from 36 to 23.
+
+Command line documentation:
+
+ >> usage: rosetta ewpo [-h] [--flavor] PARAMCARD
+ >> 
+ >> Run the EWPO interface to obtain the compatibility of a parameter point with a
+ >> fit to electroweak precision observables
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+ >>               universal (default = general).
+ 
+################################################################################
+Rosetta: an operator basis translator for Standard Model effective field theory
+################################################################################
\ No newline at end of file
diff --git a/Rosetta/interfaces/Lilith/README b/Rosetta/interfaces/Lilith/README
new file mode 100644
index 0000000..707e0ae
--- /dev/null
+++ b/Rosetta/interfaces/Lilith/README
@@ -0,0 +1,44 @@
+################################################################################
+Rosetta: Lilith interface
+################################################################################
+
+interfaces/Lilith/             # Lilith interface Package
+|-> __init__.py
+|-> Lilith.py                  # Interface implementation
+|-> errors.py                  # package specific errors
+|-> README                     # You are here
+
+A useful program for computing the combined likelihood using the latest Higgs 
+signal strength data is described in arXiv:1502.04138. Using the 
+SignalStrengths interface, Rosetta constructs the Higgs signal strengths and 
+feeds them to Lilith to obtain the chi-squared goodness of fit measure to the 
+Higgs data as calculated by a local installation of Lilith. 
+
+In order to have this working correctly the user must modify 
+Rosetta/config.txt, putting the absolute path to the base directory of a local 
+Lilith installation. The function calculate_likelihood(basis) performs the task 
+described above where basis is a Rosetta basis instance.
+
+A translation path to the BSMCharacterisation "basis" must be present.
+
+Command line documentation:
+
+ >> usage: rosetta lilith [-h] [--squares] [--flavor] PARAMCARD
+ >> 
+ >> Run the Lilith interface to obtain the likelihood value with respect to the
+ >> latest Higgs signal strength data for a particular point in EFT parameter
+ >> space
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --squares   Retain quadratic order in EFT coefficients in the
+ >>               SignalStrengths interface (NOT IMPLEMENTED)
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+ >>               universal (default = general)
+
+################################################################################
+Rosetta: an operator basis translator for Standard Model effective field theory
+################################################################################
\ No newline at end of file
diff --git a/Rosetta/interfaces/SignalStrengths/README b/Rosetta/interfaces/SignalStrengths/README
new file mode 100644
index 0000000..02ba24e
--- /dev/null
+++ b/Rosetta/interfaces/SignalStrengths/README
@@ -0,0 +1,57 @@
+################################################################################
+Rosetta: SignalStrengths interface
+################################################################################
+
+interfaces/SignalStrengths/   # SignalStrengths interface Package
+|-> __init__.py
+|-> BR/                       # Folder storing tabulated SM Higgs branching 
+|   |                         # fractions and total widths provided by the 
+|   |                         # LHCHXSWG.
+|   |-> ff.dat
+|   |-> VV.dat
+|       
+|-> production.py             # Calculation of higgs production rescaling 
+|                             # factors.
+|                             
+|-> decay.py                  # Calculation of higgs decay partial width 
+|                             # rescaling factors, optionally using Rosetta's 
+|                             # eHDECAY interface.
+|                             
+|-> errors.py                 # Package-specific errors.
+|   
+|-> loopfunctions.py          # Fermion and gauge boson triangle loop functions.
+|-> README                    # You are here.
+
+Rosetta provides an interface through which to calculate the SM Higgs signal 
+strengths given an input of EFT parameters in a given basis. The 'mu' factors 
+are calculated for each production and decay channel by rescaling the 
+production cross sections partial widths, and total width of the Higgs. The 
+approach implemented is summarised in arXiv:1505.00046, where analytical or 
+numerical formulae each of the rescaling factors are provided. 
+
+A translation path to the BSM Characterisation basis must be present.
+
+This package has a standalone version that prints out a list of signal 
+strengths and is also used internally by the Lilith interace.
+
+Command line documentation:
+
+ >> usage: rosetta signalstrengths [-h] [--squares] [--sqrts] [--flavor] PARAMCARD
+ >> 
+ >> Run the SignalStrengths interface to obtain the mu's for all of the Higgs
+ >> production and decay channels.
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD   Input parameter card.
+ >> 
+ >> optional arguments:
+ >>   -h, --help  show this help message and exit
+ >>   --squares   Retain quadratic order in EFT coefficients (NOT IMPLEMENTED)
+ >>   --sqrts     Specify pp collider centre-of mass energy in TeV. Allowed values
+ >>               are: 7, 8, 13 (default = 8).
+ >>   --flavor    Specify flavor structure. Allowed values are: general, diagonal,
+              universal (default = general).
+              
+################################################################################
+Rosetta: an operator basis translator for Standard Model effective field theory
+################################################################################
diff --git a/Rosetta/interfaces/dihiggs/__init__.py b/Rosetta/interfaces/dihiggs/__init__.py
deleted file mode 100644
index e51f335..0000000
--- a/Rosetta/interfaces/dihiggs/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from errors import dihiggsImportError, dihiggsInterfaceError
-# from dihiggs.interface import dihiggsInterface
-# from interface import TranslateInterface, DefaultCardInterface
diff --git a/Rosetta/interfaces/dihiggs/dihiggs.py b/Rosetta/interfaces/dihiggs/dihiggs.py
deleted file mode 100644
index 52d8f2b..0000000
--- a/Rosetta/interfaces/dihiggs/dihiggs.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from math import sqrt, pi
-
-
-from ...internal.basis import checkers as check
-from ..SignalStrengths.decay import decay
-from .production_xs import xsfb
-
-masses = {25,6} # H, b, t masses
-
-
-def get_xs_times_br(basis, sqrts = 13):
-    
-    decays = decay(basis)
-    
-    kl, kt, c2, cg, c2g = get_dihiggs_params(basis)
-    
-    xs, err = xsfb(sqrts, kl, kt, c2, cg, c2g, error=True)
-    
-    # print xs, err
-    print decays.keys()
-
-
-def get_dihiggs_params(basis):
-    
-    bsmc = basis.translate(target='bsmc')
-    
-    check.masses(bsmc, masses, message='DiHiggs interface')
-     
-    MH = bsmc.mass[25] # Higgs mass
-    vev = sqrt(1./sqrt(2)/bsmc.inputs['Gf']) # Higgs vev
-    lam = MH**2/(2.*vev**2) # Higgs self-coupling
-        
-    kl = (1. + bsmc['dL3']/lam)
-    
-    kt = 1. + bsmc['BCxdYu'][3,3]
-    
-    c2 = bsmc['BCxY2u'][3,3].real/2.
-    
-    cg = bsmc['Cgg']*12.*pi**2
-    
-    c2g = -bsmc['Cgg2']*12.*pi**2
-    
-    return (kl, kt, c2, cg, c2g)
\ No newline at end of file
diff --git a/Rosetta/interfaces/dihiggs/errors.py b/Rosetta/interfaces/dihiggs/errors.py
deleted file mode 100644
index 7013b17..0000000
--- a/Rosetta/interfaces/dihiggs/errors.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from ...internal.errors import RosettaImportError, RosettaInterfaceError
-
-class dihiggsImportError(RosettaImportError):
-    '''
-    Exception raised when a problem occurs trying to import the 
-    dihiggs interface package
-    '''
-    interface='dihiggs'
-    pass
-    
-class dihiggsInterfaceError(RosettaInterfaceError):
-    '''
-    Exception raised when a problem occurs within the dihiggs 
-    interface
-    '''
-    interface='dihiggs'
-    pass
-
-class SqrtsError(dihiggsInterfaceError):
-    '''
-    Exception for invalid value of sqrt(s) in TeV not in (7, 8, 13)
-    '''
-    interface='dihiggs'
-    pass
\ No newline at end of file
diff --git a/Rosetta/interfaces/dihiggs/production_xs.py b/Rosetta/interfaces/dihiggs/production_xs.py
deleted file mode 100755
index 9cfb6ce..0000000
--- a/Rosetta/interfaces/dihiggs/production_xs.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from errors import SqrtsError
-
-# SM predictions for di-higgs production with various relative uncertainties at
-# different pp collider energies
-# errors in normalization, NNLL for mh = 125 GeV
-# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/LHCHXSWGHH#Current_recommendations_for_di_H
-SM_predictions = {
-    7  :{ 'xs':7.718, 'scalep':4.0, 'scalem' :-5.7, 'PDF':3.4, 'alphas':2.8},
-    8  :{ 'xs':11.18, 'scalep':4.1, 'scalem' :-5.7, 'PDF':3.1, 'alphas':2.6},
-    13 :{ 'xs':37.95, 'scalep':4.3, 'scalem' :-6.0, 'PDF':2.1, 'alphas':2.3},
-    14 :{ 'xs':45.05, 'scalep':4.4, 'scalem' :-6.0, 'PDF':2.1, 'alphas':2.2},
-    100:{ 'xs':1749., 'scalep':5.1, 'scalem' :-6.6, 'PDF':1.7, 'alphas':2.1}
-}
-
-# Polynomial coefficients for ratio at different pp collider energies
-pp_coeffs = {
-    7  :[2.20968, 9.82091, 0.332842, 0.120743, 1.13516, 
-         -8.76709, -1.54253, 3.09385, 1.64789, -5.14831, 
-         -0.790689, 2.12522, 0.385807, -0.952469, -0.618337],
-    8  :[2.17938, 9.88152, 0.31969, 0.115609, 1.16772, 
-         -8.69692, -1.49906, 3.02278, 1.59905, -5.09201, 
-         -0.761032, 2.06131, 0.369, -0.922398, -0.604222],
-    13 :[2.09078, 10.1517, 0.282307, 0.101205, 1.33191, 
-         -8.51168, -1.37309, 2.82636, 1.45767, -4.91761, 
-         -0.675197, 1.86189, 0.321422, -0.836276, -0.568156],
-    14 :[2.07992, 10.2036, 0.277868, 0.0995436, 1.36558, 
-         -8.492, -1.35778, 2.80127, 1.44117, -4.89626, 
-         -0.664721, 1.83596, 0.315808, -0.826019, -0.564388],
-    100:[2.17938, 9.88152, 0.31969, 0.115609, 1.16772, 
-         -8.69692, -1.49906, 3.02278, 1.59905, -5.09201, 
-         -0.761032, 2.06131, 0.369, -0.922398, -0.604222]
-}
-
-def xsfb(E, kl, kt, c2, cg, c2g, error=False):
-    try:
-        A = pp_coeffs[E]
-        SM = SM_predictions[E]
-    except KeyError:
-        raise SqrtsError(sqrt(sqrts))
-    
-    R_SM = ( A[0]*kt**4 + A[1]*c2**2 + (A[2]*kt**2 + A[3]*cg**2)*kl**2 
-           + A[4]*c2g**2 + ( A[5]*c2 + A[6]*kt*kl )*kt**2 
-           + ( A[7]*kt*kl + A[8]*cg*kl )*c2 + A[9]*c2*c2g  
-           + ( A[10]*cg*kl + A[11]*c2g )*kt**2 
-           + ( A[12]*kl*cg + A[13]*c2g )*kt*kl + A[14]*cg*c2g*kl)
-    
-    if not error:
-        return SM['xs']*R_SM
-    else:
-        return SM['xs']*R_SM, {k:v*R_SM for k,v in SM.iteritems() if k!='xs'}
-
-# print "RHH = %f" % f(kl,kt,c2,cg,c2g)
-
-########################
-
-#print(f(1,1,0,0,0)*xs)
-# print "XS =  %f fb, scale (+ %f, %f) fb, PDF +- %f fb, alphaS +- %f fb, top mass +- %f fb, RHH +- 0 " % (f(kl,kt,c2,cg,c2g)*xs, f(kl,kt,c2,cg,c2g)*scalep, f(kl,kt,c2,cg,c2g)*scalem, f(kl,kt,c2,cg,c2g)*PDF, f(kl,kt,c2,cg,c2g)*alphas, f(kl,kt,c2,cg,c2g)*0.1 )
-
-
-
-
-
diff --git a/Rosetta/interfaces/eHDECAY/README b/Rosetta/interfaces/eHDECAY/README
new file mode 100644
index 0000000..d184974
--- /dev/null
+++ b/Rosetta/interfaces/eHDECAY/README
@@ -0,0 +1,69 @@
+################################################################################
+Rosetta: eHDECAY interface
+################################################################################
+
+interfaces/eHDECAY/            # eHDECAY interface Package
+|-> __init__.py
+|-> eHDECAY.py                 # Interface implementation
+|-> errors.py                  # package specific errors
+
+A useful program based on HDECAY (arXiv:hep-ph/9704448) for calculating the 
+Higgs total width was developed in 2014 and is described in arXiv:1403.3381. 
+The program takes as input a number of parameters in the SILH basis to calculate
+the width and branching ratios to SM particles optionally including Electroweak 
+corrections. 
+
+In order to have this working correctly the user must modify 
+Rosetta/config.txt, putting the absolute path to the base directory of a local 
+eHDECAY installation. There must exist a possible translation path between the 
+input basis and the SILH basis. The internal/eHDECAY.py module then performs 
+this translation, rescales the relevant parameters of the Rosetta SILH basis 
+implementation to match the conventions of arXiv:1403.3381 and executes a run 
+of eHDECAY. The results are stored and a copy of the input file "ehdecay.in" is 
+saved locally. The results are then written to and SLHA decay block in the 
+output card. The relevant input parameters are:
+
+    SM inputs: # ALL masses must be nonzero for eHDECAY to give a finite result
+    'MC', 'MB', 'MT', 'MMU', 'MTAU, # SM fermion masses
+    'MH', 'MZ', 'MW', 'aEWM1' 'Gf', # EW input masses, (alpha_EW)^-1, G_Fermi
+    'aSMZ'                          # alpha_S(MZ)
+
+    SILH coefficients:
+    'CHbar' , 'CTbar' , 'Ctaubar', 'Cmubar', 'Ctbar',
+    'Cbbar' , 'Ccbar' , 'Csbar'  , 'CWbar' , 'CBbar',
+    'CHWbar', 'CHBbar', 'Cgambar', 'Cgbar'
+
+    eHDECAY option:
+    'IELW' # Electroweak corrections switch (1:on, 0:off)
+
+eHDECAY can potentially give negative branching fractions and even a negative 
+total Higgs width for unreasonable choices of EFT parameters. A negative total 
+width is currently not allowed while negative branching fractions are not 
+handled and will be omitted from the parameter card.
+
+The interface has a standalone version that simply prints the SLHA decay block 
+for the Higgs or can be invoked as an option in the translate interface
+
+Command line documentation:
+
+ >> usage: rosetta ehdecay [-h] [-o OUTPUT] [--dependent] [--EW] [--flavor] [-w]
+ >>                        PARAMCARD
+ >> 
+ >> Run the eHDECAY interface to obtain the Higgs branching fractions
+ >> 
+ >> positional arguments:
+ >>   PARAMCARD             Input parameter card
+ >> 
+ >> optional arguments:
+ >>   -h, --help            show this help message and exit
+ >>   -o OUTPUT, --output OUTPUT
+ >>                         Write out a new SLHA card containing the decay block
+ >>   --dependent           Also write out dependent parameters to output card
+ >>   --EW                  switch on electroweak corrections in eHDECAY
+ >>   --flavor              Specify flavor structure. Allowed values are: general,
+ >>                         diagonal, universal (default = general)
+ >>   -w, --overwrite       Overwrite any pre-existing output file
+
+################################################################################
+Rosetta: an operator basis translator for Standard Model effective field theory
+################################################################################
\ No newline at end of file