diff --git a/DESCRIPTION b/DESCRIPTION
index 8d7d6f8e8e3f150abe8cf147ec6eb0766117599c..d1df7728709a8ba11316333a950bbce45d527fd1 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,8 +1,8 @@
 Package: sybil
 Type: Package
 Title: Efficient Constrained Based Modelling
-Version: 2.0.4
-Date: 2017-07-18
+Version: 2.1.1
+Date: 2018-05-14
 Authors@R: c(
 	     person(c("C.", "Jonathan"), "Fritzemeier", role = c("cre", "ctb"), email = "clausjonathan.fritzemeier@uni-duesseldorf.de"),
 	     person("Gabriel", "Gelius-Dietrich", role = c("aut")),
@@ -12,7 +12,7 @@ Authors@R: c(
              person("Abdelmoneim", "Desouki", role = "ctb"),
              person(c("Martin", "J."), "Lercher", role = "ctb"))
 Maintainer: C. Jonathan Fritzemeier <clausjonathan.fritzemeier@uni-duesseldorf.de>
-Depends: R (>= 2.14.2), Matrix, lattice
+Depends: R (>= 3.2.0), Matrix, lattice
 Imports: methods
 Suggests: glpkAPI (>= 1.2.8), cplexAPI (>= 1.2.4), clpAPI (>= 1.2.4),
         lpSolveAPI (>= 5.5.2.0), parallel, grid
@@ -21,7 +21,8 @@ URL:
 Description: This Systems Biology Package (Gelius-Dietrich et. al. (2012) <doi:10.1186/1752-0509-7-125>) implements algorithms for constraint based analyses of metabolic networks, e.g. flux-balance analysis (FBA), minimization of metabolic adjustment (MOMA), regulatory on/off minimization (ROOM), robustness analysis and flux variability analysis. The package is easily extendable for additional algorithms. Most of the current LP/MILP solvers are supported via additional packages.
 LazyLoad: yes
 License: GPL-3 | file LICENSE
-Collate: generics.R validmodelorg.R validoptsol.R validreactId.R
+Collate: generics.R validmodelorg.R validoptsol.R validreactId.R validreact.R
+        reactClass.R
         validreactId_Exch.R validsysBiolAlg.R addAlgorithm.R
         addExchReact.R addReact.R addSolver.R blockedReact.R
         bracket_pairs.R ceilValues.R changeBounds.R changeGPR.R
@@ -53,7 +54,8 @@ Collate: generics.R validmodelorg.R validoptsol.R validreactId.R
         sysBiolAlg_lmomaClass.R sysBiolAlg_momaClass.R
         sysBiolAlg_mtfClass.R sysBiolAlg_mtfEasyConstraintClass.R
         sysBiolAlg_roomClass.R sybilLogClass.R upgradeModelorg.R
-Packaged: 2017-07-18 09:34:14 UTC; jonathan
+        mergeReact2Modelorg.R
+Packaged: 2018-05-14 12:34:14 UTC; jonathan
 Author: C. Jonathan Fritzemeier [cre, ctb],
   Gabriel Gelius-Dietrich [aut],
   Rajen Piernikarczyk [ctb],
diff --git a/NAMESPACE b/NAMESPACE
index e782ef4835465a07be574fe5c2c7610ae3cb85da..b750218c1187f48e7e88423bd85e7d3971599a43 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -11,6 +11,7 @@ importFrom("utils", "compareVersion")
 
 exportPattern("^[^\\.]")
 
+
 exportClass(
 checksol,
 fluxDistribution,
@@ -30,6 +31,7 @@ optsol_robAna,
 optsol,
 pointerToProb,
 ppProc,
+react,
 reactId,
 sybilError,
 sybilLog
diff --git a/R/addReact.R b/R/addReact.R
index 35e6a252a998e9d3147ebc08b7916fbdc6b9b35d..0478d7af32613189fa777a6470d55c2dc1289cca 100644
--- a/R/addReact.R
+++ b/R/addReact.R
@@ -31,19 +31,20 @@
 # The algorithm is (more or less) the same.
 
 
-addReact <- function(model,
-                     id,
-                     met,
-                     Scoef,
-                     reversible = FALSE,
-                     lb = 0,
-                     ub = SYBIL_SETTINGS("MAXIMUM"),
-                     obj = 0,
-                     subSystem = NA,
-                     gprAssoc = NA,
-                     reactName = NA,
-                     metName = NA,
-                     metComp = NA) {
+setMethod("addReact", signature(model = "modelorg"),
+	function(model,
+			id,
+			met,
+			Scoef,
+			reversible = FALSE,
+			lb = 0,
+			ub = SYBIL_SETTINGS("MAXIMUM"),
+			obj = 0,
+			subSystem = NA,
+			gprAssoc = NA,
+			reactName = NA,
+			metName = NA,
+			metComp = NA) {
 
   
     # ------------------------------------------------------------------------ #
@@ -185,7 +186,7 @@ addReact <- function(model,
             newRows <- Matrix::Matrix(0,
                                       nrow = nNewRows,
                                       ncol = react_num(model))
-            newS <- Matrix::rBind(newS, newRows)
+            newS <- rbind(newS, newRows)
             
             # new met attrs
             if(ncol(newMetAttr) > 0){
@@ -219,7 +220,7 @@ addReact <- function(model,
             newobj_coef  <- append(obj_coef(model),  obj)
 
             # new column in stoichiometric matrix
-            newS <- cBind(newS, rep(0, nrow(newS)))
+            newS <- cbind(newS, rep(0, nrow(newS)))
             
             # new react Attr
             # only one new row, /bc we can only add one reaction a time.
@@ -235,23 +236,23 @@ addReact <- function(model,
             		newsubSys <- ss
             	}
             	else {
-            		newsubSys <- rBind(ss, rep(FALSE, ncol(subSys(model))))
+            		newsubSys <- rbind(ss, rep(FALSE, ncol(subSys(model))))
             	}
             }
             else {
                 if (is(subSystem, "logical")) {
-                    newsubSys <- rBind(subSys(model), subSystem)
+                    newsubSys <- rbind(subSys(model), subSystem)
                 }
                 else {
                     nSubsRow  <- colnames(subSys(model)) %in% subSystem
-                    newsubSys <- rBind(subSys(model), nSubsRow)
+                    newsubSys <- rbind(subSys(model), nSubsRow)
                 }
             }
 
 
             # gpr association
             if (ncol(rxnGeneMat(model)) > 0) {
-                newrxnGeneMat   <- rBind(rxnGeneMat(model),
+                newrxnGeneMat   <- rbind(rxnGeneMat(model),
                                          rep(FALSE, ncol(rxnGeneMat(model))))
             }
             else { #if (nrow(rxnGeneMat(model)) > 0) {
@@ -293,7 +294,7 @@ addReact <- function(model,
                     }
                     else {
                         for (i in seq(along = gene_rule[["gene"]][new_gene])) {
-	    					newrxnGeneMat <- cBind(newrxnGeneMat,
+	    					newrxnGeneMat <- cbind(newrxnGeneMat,
 		    								   rep(FALSE, nrow(newrxnGeneMat)))
 			    		}
 					}
@@ -410,5 +411,5 @@ addReact <- function(model,
 
     return(mod_out)
 
-}
+})
 
diff --git a/R/checksolClass.R b/R/checksolClass.R
index 8659abf9d89d79f9a54084dcd679d4039ae23067..3f8c08ad95f321ec85e9e0f8c2d482bd9ab53ccc 100644
--- a/R/checksolClass.R
+++ b/R/checksolClass.R
@@ -62,7 +62,7 @@ setMethod("num_of_prob", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("num_of_prob", signature = (object = "checksol"),
+setReplaceMethod("num_of_prob", signature(object = "checksol"),
                  function(object, value) {
                      object@num_of_prob <- value
                      return(object)
@@ -77,7 +77,7 @@ setMethod("exit_code", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("exit_code", signature = (object = "checksol"),
+setReplaceMethod("exit_code", signature(object = "checksol"),
                  function(object, value) {
                      object@exit_code <- value
                      return(object)
@@ -92,7 +92,7 @@ setMethod("exit_num", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("exit_num", signature = (object = "checksol"),
+setReplaceMethod("exit_num", signature(object = "checksol"),
                  function(object, value) {
                      object@exit_num <- value
                      return(object)
@@ -107,7 +107,7 @@ setMethod("exit_meaning", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("exit_meaning", signature = (object = "checksol"),
+setReplaceMethod("exit_meaning", signature(object = "checksol"),
                  function(object, value) {
                      object@exit_meaning <- value
                      return(object)
@@ -122,7 +122,7 @@ setMethod("status_code", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("status_code", signature = (object = "checksol"),
+setReplaceMethod("status_code", signature(object = "checksol"),
                  function(object, value) {
                      object@status_code <- value
                      return(object)
@@ -137,7 +137,7 @@ setMethod("status_num", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("status_num", signature = (object = "checksol"),
+setReplaceMethod("status_num", signature(object = "checksol"),
                  function(object, value) {
                      object@status_num <- value
                      return(object)
@@ -153,7 +153,7 @@ setMethod("status_meaning", signature(object = "checksol"),
           }
 )
 
-setReplaceMethod("status_meaning", signature = (object = "checksol"),
+setReplaceMethod("status_meaning", signature(object = "checksol"),
                  function(object, value) {
                      object@status_meaning <- value
                      return(object)
diff --git a/R/doubleReact.R b/R/doubleReact.R
index 69b6c5475746d00ae40b9943ebc9d0c977cb4d90..fbf56ab863d7d158ad3e4aa2cf4b2a18b90e920b 100644
--- a/R/doubleReact.R
+++ b/R/doubleReact.R
@@ -123,7 +123,7 @@ doubleReact <- function(model, checkRev = TRUE, linInd = FALSE) {
 
           # Put the columns of S into a new matrix, which contain the same
           # number of metabolites
-          Stmp <- cBind(S(model)[, columns[[i]] ])
+          Stmp <- cbind(S(model)[, columns[[i]] ])
 
           # translate Stmp into a matrix with the row indices of the
           # non zero elements
diff --git a/R/fluxDistributionClass.R b/R/fluxDistributionClass.R
index d716d5da1082b61923ed360f871e5ce618201b05..ef3e4466e7cf69ae2ac56e6b567d760f14d26711 100644
--- a/R/fluxDistributionClass.R
+++ b/R/fluxDistributionClass.R
@@ -72,7 +72,7 @@ setMethod("fluxes", signature(object = "fluxDistribution"),
           }
 )
 
-setReplaceMethod("fluxes", signature = (object = "fluxDistribution"),
+setReplaceMethod("fluxes", signature(object = "fluxDistribution"),
                  function(object, value) {
                      object@fluxes <- value
                      return(object)
diff --git a/R/generics.R b/R/generics.R
index af64b93398d579728264339f40fbcd40d648d6bd..b294389bfb4364df658d908bb0f6cffb79de20bf 100644
--- a/R/generics.R
+++ b/R/generics.R
@@ -38,6 +38,10 @@ setGeneric(name = "addColsToProb",
            def  = function(lp, ...) { standardGeneric("addColsToProb") }
 )
 
+setGeneric(name = "addReact",
+           def  = function(model, ...) { standardGeneric("addReact") }
+)
+
 setGeneric(name = "addRows",
            def  = function(lp, nrows, ...) { standardGeneric("addRows") }
 )
@@ -351,6 +355,10 @@ setGeneric(name = "getObjVal",
            def  = function(lp) { standardGeneric("getObjVal") }
 )
 
+setGeneric(name = "getReaction",
+           def  = function(X, ...) { standardGeneric("getReaction") }
+)
+
 setGeneric(name = "getRedCosts",
            def  = function(lp) { standardGeneric("getRedCosts") }
 )
@@ -389,6 +397,13 @@ setGeneric(name = "gprRules<-",
            def  = function(object, value) { standardGeneric("gprRules<-") }
 )
 
+setGeneric(name = "gprRule",
+           def  = function(object) { standardGeneric("gprRule") }
+)
+setGeneric(name = "gprRule<-",
+           def  = function(object, value) { standardGeneric("gprRule<-") }
+)
+
 setGeneric(name = "hasEffect",
            def  = function(object) { standardGeneric("hasEffect") }
 )
@@ -869,6 +884,13 @@ setGeneric(name = "S<-",
            def  = function(object, value) { standardGeneric("S<-") }
 )
 
+setGeneric(name = "s",
+           def  = function(object) { standardGeneric("s") }
+)
+setGeneric(name = "s<-",
+           def  = function(object, value) { standardGeneric("s<-") }
+)
+
 setGeneric(name = "scaleProb",
            def  = function(lp, ...) { standardGeneric("scaleProb") }
 )
diff --git a/R/mergeReact2Modelorg.R b/R/mergeReact2Modelorg.R
new file mode 100644
index 0000000000000000000000000000000000000000..0c7cb3aab0676b98ee8695a2d4604f2ddae70613
--- /dev/null
+++ b/R/mergeReact2Modelorg.R
@@ -0,0 +1,162 @@
+#  mergeReact2Modelorg.R
+#  FBA and friends with R.
+#
+#  Copyright (C) 2010-2017 Claus Jonathan Fritzemeier, Dpt. for Computational Cell Biology,
+#  Institute for Informatics, Heinrich-Heine-University, Duesseldorf, Germany.
+#  All right reserved.
+#  Email: clausjonathan.fritzemeier@uni-duesseldorf.de
+#
+#  This file is part of sybil.
+#
+#  Sybil is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  Sybil is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with sybil.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# mergeReact2Modelorg
+
+
+################################################
+# Function: mergeReact2Modelorg
+#
+# Merge react objects into modelorg object
+#
+# Takes a list of react class instances and returns a modelorg object by 
+# merging the reactions into one model.
+
+
+#------------------------------------------------------------------------------#
+#            definition of the function mergeReact2Modelorg                    #
+#------------------------------------------------------------------------------#
+
+
+mergeReact2Modelorg <- function(reactList = NULL, id="newModel", name=""){
+	
+	stopifnot(!is.null(reactList))
+	
+	morg <- new("modelorg", id=id, name=name)
+	
+	reacts <- sapply(reactList, react_id)
+	if(anyDuplicated(reacts)){
+		stop("reaction ids have to be unique.")
+	}
+	react_id(morg) <- reacts
+	react_num(morg) <- length(reacts)
+	
+	met_id <- unique(unlist(lapply(reactList, met_id)))
+	met_id(morg) <- met_id
+	met_num(morg) <- length(met_id(morg))
+	
+	# collecting metabolite names and verifying identical assignments
+	met_name <- character(length(met_id))
+	names(met_name) <- met_id
+	for(r in reactList){
+		if(!all(met_name[met_id(r)] == "" | met_name[met_id(r)] == met_name(r))){
+			stop("different metabolite names for same met_id")
+		}
+		met_name[met_id(r)] <- met_name(r)
+	}
+	met_name(morg) <- met_name
+	
+	# collecting metabolite compartments and verifying identical assignments
+	met_comp <- character(length(met_id))
+	names(met_comp) <- met_id
+	for(r in reactList){
+		stopifnot(all(met_comp[met_id(r)] == "" | met_comp[met_id(r)] == met_comp(r)))
+		met_comp[met_id(r)] <- met_comp(r)
+	}
+	mod_compart(morg) <- unique(met_comp)
+	met_comp(morg) <- match(met_comp, mod_compart(morg))
+	
+	S <- Matrix(0, nrow=length(met_id), ncol=length(reacts))
+	for(j in seq(along=reactList)){
+		r <- reactList[[j]]
+		i <- match(met_id(r), met_id)
+		S[i, j] <- s(r)
+	}
+	S(morg) <- S
+	
+	subs <- lapply(reactList, subSys)
+	subsUnique <- unique(unlist(subs))
+	
+	subSys <- Matrix(F, ncol=length(subsUnique), nrow=length(reacts))
+	for(i in seq(along=reactList)){
+		ss <- setdiff(subSys(r), "")
+		if(length(ss)> 0 ){
+			j <- match(ss, subsUnique)
+			subSys[i, j] <- T
+		}
+	}
+	colnames(subSys) <- subsUnique
+	subSys(morg) <- subSys
+	
+	gprRules(morg) <- sapply(reactList, gprRule)
+	gpr(morg) <- sapply(reactList, gpr)
+	genes(morg) <- lapply(reactList, genes)
+	allGenes(morg) <- setdiff(unique(unlist(genes(morg))), "")
+	
+	
+	# built react_attr frame:
+	if(all(sapply(reactList, function(x) nrow(react_attr(x))==0))){
+		react_attr(morg) <- data.frame()
+	}else{
+		reactAttrList <- lapply(reactList, function(x){
+			df <- react_attr(x)
+			df$react_id <- react_id(x)
+			df
+		})
+		reactAttr <- Reduce(function(x, y) merge(x, y, by=intersect(colnames(x), colnames(y)), suffixes=c("", ""), all=TRUE), reactAttrList)
+		reactAttr <- reactAttr[match(react_id(morg), reactAttr$react_id), ]
+		reactAttr <- reactAttr[, setdiff(colnames(reactAttr), "react_id"), drop=F]
+		react_attr(morg) <- reactAttr
+	}
+	
+	# built met_attr frame:
+	if(all(sapply(reactList, function(x) nrow(met_attr(x))==0))){
+		met_attr(morg) <- data.frame()
+	}else{
+		metAttrList <- lapply(reactList, function(x){
+			df <- met_attr(x)
+			df$met_id <- met_id(x)
+			df
+		})
+		metAttr <- Reduce(function(x, y) merge(x, y, by=intersect(colnames(x), colnames(y)), suffixes=c("", ""), all=TRUE), metAttrList)
+		metAttr <- metAttr[match(met_id(morg), metAttr$met_id), ]
+		metAttr <- metAttr[, setdiff(colnames(metAttr), "met_id"), drop=F]
+		met_attr(morg) <- metAttr
+	}
+	
+	
+	# built comp_attr frame:
+	if(all(sapply(reactList, function(x) nrow(comp_attr(x))==0))){
+		comp_attr(morg) <- data.frame()
+	}else{
+		compAttrList <- lapply(reactList, function(x){
+			df <- comp_attr(x)
+			df
+		})
+		compAttr <- Reduce(function(x, y) merge(x, y, by=intersect(colnames(x), colnames(y)), suffixes=c("", ""), all=TRUE), compAttrList)
+		compAttr <- compAttr[match(mod_compart(morg), compAttr$comp_id), ]
+		compAttr <- compAttr[, setdiff(colnames(compAttr), "comp_id"), drop=F]
+		comp_attr(morg) <- compAttr
+	}
+	
+	mod_attr(morg)   <- data.frame()
+	stopifnot(validObject(morg, "modelorg"))
+	return(morg)
+}
+
+
+
+
+
+
diff --git a/R/modelorgClass.R b/R/modelorgClass.R
index 5cd4063e5cd24ab01b9f406e35558bea526576d4..4f6bcf46cca68dffdae5fd47d81366924196d3b3 100644
--- a/R/modelorgClass.R
+++ b/R/modelorgClass.R
@@ -105,7 +105,7 @@ modelorg <- function(id, name, subSys = NULL, compartment = NULL) {
 #------------------------------------------------------------------------------#
 
 setMethod(f = "initialize",
-          signature = "modelorg",
+          signature("modelorg"),
           definition = function(.Object, id, name,
                                 subSys = NULL, compartment = NULL) {
 
@@ -147,7 +147,7 @@ setMethod("mod_id", signature(object = "modelorg"),
           }
 )
 
-setReplaceMethod("mod_id", signature = (object = "modelorg"),
+setReplaceMethod("mod_id", signature(object = "modelorg"),
                  function(object, value) {
                      object@mod_id <- value
                      return(object)
@@ -162,7 +162,7 @@ setMethod("mod_key", signature(object = "modelorg"),
           }
 )
 
-setReplaceMethod("mod_key", signature = (object = "modelorg"),
+setReplaceMethod("mod_key", signature(object = "modelorg"),
                  function(object, value) {
                      object@mod_key <- value
                      return(object)
@@ -177,7 +177,7 @@ setMethod("mod_name", signature(object = "modelorg"),
           }
 )
 
-setReplaceMethod("mod_name", signature = (object = "modelorg"),
+setReplaceMethod("mod_name", signature(object = "modelorg"),
                  function(object, value) {
                      object@mod_name <- value
                      return(object)
@@ -192,7 +192,7 @@ setMethod("mod_desc", signature(object = "modelorg"),
           }
 )
 
-setReplaceMethod("mod_desc", signature = (object = "modelorg"),
+setReplaceMethod("mod_desc", signature(object = "modelorg"),
                  function(object, value) {
                      object@mod_desc <- value
                      return(object)
@@ -965,7 +965,68 @@ setMethod("printMetabolite", signature(object = "modelorg"),
 
     }
 )
+#------------------------------------------------------------------------------#
 
+setMethod("getReaction", signature(X = "modelorg"),
+	function(X, j = NULL, drop=T, tol = SYBIL_SETTINGS("TOLERANCE")) {
+		# translate reaction id's to indices
+		cj <- checkReactId(X, react = j)
+		if (!is(cj, "reactId")) {
+			stop("check argument j")
+		}
+		else {
+			cn <- react_pos(cj)
+		}
+		rl <- lapply(cn, function(r){
+			s <- S(X)[,r]
+			
+			if(nrow(met_attr(X))>0){
+				ma <- met_attr(X)[abs(s) > tol, , drop=F]
+			}else{
+				ma <- data.frame()
+			}
+			if(nrow(react_attr(X))>0){
+				ra <- react_attr(X)[r, , drop=F]
+			}else{
+				ra <- data.frame()
+			}
+			if(nrow(comp_attr(X))>0){
+				comp <- unique(met_comp(X)[abs(s) > tol])
+				ca <- comp_attr(X)[comp, , drop=F]
+				ca$comp_id <- mod_compart(X)[comp]
+			}else{
+				ca <- data.frame()
+			}
+			
+			new("react",
+				id=react_id(X)[r],
+				name=react_name(X)[r],
+				rev=react_rev(X)[r],
+				met_id=met_id(X)[abs(s) > tol],
+				met_name=met_name(X)[abs(s) > tol],
+				met_comp=mod_compart(X)[met_comp(X)[abs(s) > tol]],
+				s=s[abs(s) > tol],
+				lowbnd=lowbnd(X)[r],
+				uppbnd=uppbnd(X)[r],
+				obj_coef=obj_coef(X)[r],
+				gprRule=gprRules(X)[r],
+				genes=genes(X)[[r]],
+				gpr = gpr(X)[r],
+				subSys = colnames(subSys(X))[subSys(X)[r,]],
+				met_attr = ma,
+				react_attr = ra,
+				comp_attr = ca
+			)
+		})
+		
+		if(length(rl) == 1 && drop){
+			return(rl[[1]])
+		}
+		
+		names(rl) <- react_id(X)[cn]
+		return(rl)
+	}
+)
 
 #------------------------------------------------------------------------------#
 
diff --git a/R/modelorg_irrevClass.R b/R/modelorg_irrevClass.R
index 9c1850bf56295974228f01cd2a9dc903b6e69852..673ffe6f3d29e722eeb3b22c278260846bb1d9d7 100644
--- a/R/modelorg_irrevClass.R
+++ b/R/modelorg_irrevClass.R
@@ -83,7 +83,7 @@ setMethod("irrev", signature(object = "modelorg_irrev"),
           }
 )
 
-setReplaceMethod("irrev", signature = (object = "modelorg_irrev"),
+setReplaceMethod("irrev", signature(object = "modelorg_irrev"),
                  function(object, value) {
                      object@irrev <- value
                      return(object)
@@ -98,7 +98,7 @@ setMethod("matchrev", signature(object = "modelorg_irrev"),
           }
 )
 
-setReplaceMethod("matchrev", signature = (object = "modelorg_irrev"),
+setReplaceMethod("matchrev", signature(object = "modelorg_irrev"),
                  function(object, value) {
                      object@matchrev <- value
                      return(object)
@@ -113,7 +113,7 @@ setMethod("rev2irrev", signature(object = "modelorg_irrev"),
          }
 )
 
-setReplaceMethod("rev2irrev", signature = (object = "modelorg_irrev"),
+setReplaceMethod("rev2irrev", signature(object = "modelorg_irrev"),
                 function(object, value) {
                     object@rev2irrev <- value
                     return(object)
@@ -128,7 +128,7 @@ setMethod("irrev2rev", signature(object = "modelorg_irrev"),
          }
 )
 
-setReplaceMethod("irrev2rev", signature = (object = "modelorg_irrev"),
+setReplaceMethod("irrev2rev", signature(object = "modelorg_irrev"),
                 function(object, value) {
                     object@irrev2rev<- value
                     return(object)
diff --git a/R/netFluxClass.R b/R/netFluxClass.R
index 624bf6cabdd3177cea41ad2e7d3568649856abb6..4f9d281d5e79c27af5311617adb452b8a92c9365 100644
--- a/R/netFluxClass.R
+++ b/R/netFluxClass.R
@@ -75,7 +75,7 @@ setMethod("react_id", signature(object = "netFlux"),
           }
 )
 
-setReplaceMethod("react_id", signature = (object = "netFlux"),
+setReplaceMethod("react_id", signature(object = "netFlux"),
                  function(object, value) {
                      object@react_id <- value
                      return(object)
diff --git a/R/optsolClass.R b/R/optsolClass.R
index 1311b7127d07ae6b558e00d0badea6d79c4c854c..bf550387a659023f4d1e601dbd5ad772ea0ac59e 100644
--- a/R/optsolClass.R
+++ b/R/optsolClass.R
@@ -78,7 +78,7 @@ setMethod("mod_id", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("mod_id", signature = (object = "optsol"),
+setReplaceMethod("mod_id", signature(object = "optsol"),
                  function(object, value) {
                      object@mod_id <- value
                      return(object)
@@ -93,7 +93,7 @@ setMethod("mod_key", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("mod_key", signature = (object = "optsol"),
+setReplaceMethod("mod_key", signature(object = "optsol"),
                  function(object, value) {
                      object@mod_key <- value
                      return(object)
@@ -108,7 +108,7 @@ setMethod("solver", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("solver", signature = (object = "optsol"),
+setReplaceMethod("solver", signature(object = "optsol"),
                  function(object, value) {
                      object@solver <- value
                      return(object)
@@ -123,7 +123,7 @@ setMethod("method", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("method", signature = (object = "optsol"),
+setReplaceMethod("method", signature(object = "optsol"),
                  function(object, value) {
                      object@method <- value
                      return(object)
@@ -138,7 +138,7 @@ setMethod("algorithm", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("algorithm", signature = (object = "optsol"),
+setReplaceMethod("algorithm", signature(object = "optsol"),
                  function(object, value) {
                      object@algorithm <- value
                      return(object)
@@ -153,7 +153,7 @@ setMethod("num_of_prob", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("num_of_prob", signature = (object = "optsol"),
+setReplaceMethod("num_of_prob", signature(object = "optsol"),
                  function(object, value) {
                      object@num_of_prob <- value
                      return(object)
@@ -168,7 +168,7 @@ setMethod("lp_num_cols", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("lp_num_cols", signature = (object = "optsol"),
+setReplaceMethod("lp_num_cols", signature(object = "optsol"),
                  function(object, value) {
                      object@lp_num_cols <- value
                      return(object)
@@ -183,7 +183,7 @@ setMethod("lp_num_rows", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("lp_num_rows", signature = (object = "optsol"),
+setReplaceMethod("lp_num_rows", signature(object = "optsol"),
                  function(object, value) {
                      object@lp_num_rows <- value
                      return(object)
@@ -240,7 +240,7 @@ setMethod("lp_obj", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("lp_obj", signature = (object = "optsol"),
+setReplaceMethod("lp_obj", signature(object = "optsol"),
                  function(object, value) {
                      object@lp_obj <- value
                      return(object)
@@ -255,7 +255,7 @@ setMethod("lp_ok", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("lp_ok", signature = (object = "optsol"),
+setReplaceMethod("lp_ok", signature(object = "optsol"),
                  function(object, value) {
                      object@lp_ok <- value
                      return(object)
@@ -270,7 +270,7 @@ setMethod("lp_stat", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("lp_stat", signature = (object = "optsol"),
+setReplaceMethod("lp_stat", signature(object = "optsol"),
                  function(object, value) {
                      object@lp_stat <- value
                      return(object)
@@ -315,7 +315,7 @@ setMethod("fldind", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("fldind", signature = (object = "optsol"),
+setReplaceMethod("fldind", signature(object = "optsol"),
                  function(object, value) {
                      object@fldind <- value
                      return(object)
@@ -330,7 +330,7 @@ setMethod("fluxdist", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("fluxdist", signature = (object = "optsol"),
+setReplaceMethod("fluxdist", signature(object = "optsol"),
                  function(object, value) {
                      object@fluxdist <- value
                      return(object)
@@ -345,7 +345,7 @@ setMethod("fluxes", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("fluxes", signature = (object = "optsol"),
+setReplaceMethod("fluxes", signature(object = "optsol"),
                  function(object, value) {
                      fluxes(object@fluxdist) <- value
                      return(object)
@@ -360,7 +360,7 @@ setMethod("alg_par", signature(object = "optsol"),
           }
 )
 
-setReplaceMethod("alg_par", signature = (object = "optsol"),
+setReplaceMethod("alg_par", signature(object = "optsol"),
                  function(object, value) {
                      object@alg_par <- value
                      return(object)
diff --git a/R/optsol_blockedReactClass.R b/R/optsol_blockedReactClass.R
index 37e6970abe2d71f21858c7666aea2209683c6046..e50af4a78659450e0b7e96c1769d50e5cb28b374 100644
--- a/R/optsol_blockedReactClass.R
+++ b/R/optsol_blockedReactClass.R
@@ -50,7 +50,7 @@ setMethod("blocked", signature(object = "optsol_blockedReact"),
           }
 )
 
-setReplaceMethod("blocked", signature = (object = "optsol_blockedReact"),
+setReplaceMethod("blocked", signature(object = "optsol_blockedReact"),
                  function(object, value) {
                      object@blocked <- value
                      return(object)
@@ -65,7 +65,7 @@ setMethod("react", signature(object = "optsol_blockedReact"),
           }
 )
 
-setReplaceMethod("react", signature = (object = "optsol_blockedReact"),
+setReplaceMethod("react", signature(object = "optsol_blockedReact"),
                  function(object, value) {
                      object@react <- value
                      return(object)
diff --git a/R/optsol_fluxVarClass.R b/R/optsol_fluxVarClass.R
index 5ad34c5814348395e36515d48da4e9473a0cb5c9..cc8399415b03c6e34eb5e7b2e46795ac500bd5b3 100644
--- a/R/optsol_fluxVarClass.R
+++ b/R/optsol_fluxVarClass.R
@@ -48,7 +48,7 @@ setMethod("react", signature(object = "optsol_fluxVar"),
           }
 )
 
-setReplaceMethod("react", signature = (object = "optsol_fluxVar"),
+setReplaceMethod("react", signature(object = "optsol_fluxVar"),
                  function(object, value) {
                      object@react <- value
                      return(object)
diff --git a/R/optsol_fluxdelClass.R b/R/optsol_fluxdelClass.R
index 1017db274df1fcc453c6dc1bc0fc4f8890dad984..e59efea8aa28661b093ed915fc275c3e2762a5e4 100644
--- a/R/optsol_fluxdelClass.R
+++ b/R/optsol_fluxdelClass.R
@@ -50,7 +50,7 @@ setMethod("chlb", signature(object = "optsol_fluxdel"),
           }
 )
 
-setReplaceMethod("chlb", signature = (object = "optsol_fluxdel"),
+setReplaceMethod("chlb", signature(object = "optsol_fluxdel"),
                  function(object, value) {
                      object@chlb <- value
                      return(object)
@@ -65,7 +65,7 @@ setMethod("chub", signature(object = "optsol_fluxdel"),
           }
 )
 
-setReplaceMethod("chub", signature = (object = "optsol_fluxdel"),
+setReplaceMethod("chub", signature(object = "optsol_fluxdel"),
                  function(object, value) {
                      object@chub <- value
                      return(object)
@@ -80,7 +80,7 @@ setMethod("dels", signature(object = "optsol_fluxdel"),
           }
 )
 
-setReplaceMethod("dels", signature = (object = "optsol_fluxdel"),
+setReplaceMethod("dels", signature(object = "optsol_fluxdel"),
                  function(object, value) {
                      object@dels <- value
                      return(object)
@@ -111,7 +111,7 @@ setMethod("lethal", signature(object = "optsol_fluxdel"),
 )
 
 
-#setMethod("ind2id", signature = (object = "optsol_fluxdel"),
+#setMethod("ind2id", signature(object = "optsol_fluxdel"),
 #                 function(object, slotN) {
 #                     out <- NULL
 #                     switch (slotN,
@@ -136,7 +136,7 @@ setMethod("lethal", signature(object = "optsol_fluxdel"),
 #)
 
 
-setMethod("deleted", signature = (object = "optsol_fluxdel"),
+setMethod("deleted", signature(object = "optsol_fluxdel"),
                  function(object, i) {
                      value <- dels(object)[i, ]
                      return(value)
diff --git a/R/optsol_genedelClass.R b/R/optsol_genedelClass.R
index d58f040bd1a54a271dce4f0573bcaa30f30db48d..eba63cc64d5737ee216120797f784818c5235f46 100644
--- a/R/optsol_genedelClass.R
+++ b/R/optsol_genedelClass.R
@@ -49,7 +49,7 @@ setMethod("fluxdels", signature(object = "optsol_genedel"),
           }
 )
 
-setReplaceMethod("fluxdels", signature = (object = "optsol_genedel"),
+setReplaceMethod("fluxdels", signature(object = "optsol_genedel"),
                  function(object, value) {
                      object@fluxdels <- value
                      return(object)
@@ -64,7 +64,7 @@ setMethod("hasEffect", signature(object = "optsol_genedel"),
           }
 )
 
-setReplaceMethod("hasEffect", signature = (object = "optsol_genedel"),
+setReplaceMethod("hasEffect", signature(object = "optsol_genedel"),
                  function(object, value) {
                      object@hasEffect <- value
                      return(object)
@@ -76,7 +76,7 @@ setReplaceMethod("hasEffect", signature = (object = "optsol_genedel"),
 #                               other methods                                  #
 #------------------------------------------------------------------------------#
 
-#setMethod("ind2id", signature = (object = "optsol_genedel"),
+#setMethod("ind2id", signature(object = "optsol_genedel"),
 #                 function(object, slotN) {
 #                     out <- NULL
 #                     switch (slotN,
@@ -107,7 +107,7 @@ setReplaceMethod("hasEffect", signature = (object = "optsol_genedel"),
 #)
 
 
-setMethod("deleted", signature = (object = "optsol_genedel"),
+setMethod("deleted", signature(object = "optsol_genedel"),
                  function(object, i) {
                      value <- fluxdels(object)[[i]]
                      return(value)
diff --git a/R/optsol_optimizeProbClass.R b/R/optsol_optimizeProbClass.R
index 3c45d48cab9220c839a5dbae593153fc0ccf9e01..ca7880b28e75f12bf5dc59662c59bd30566fd289 100644
--- a/R/optsol_optimizeProbClass.R
+++ b/R/optsol_optimizeProbClass.R
@@ -92,7 +92,7 @@ setMethod("preProc", signature(object = "optsol_optimizeProb"),
           }
 )
 
-setReplaceMethod("preProc", signature = (object = "optsol_optimizeProb"),
+setReplaceMethod("preProc", signature(object = "optsol_optimizeProb"),
                  function(object, value) {
                      object@preProc <- value
                      return(object)
@@ -107,7 +107,7 @@ setMethod("postProc", signature(object = "optsol_optimizeProb"),
           }
 )
 
-setReplaceMethod("postProc", signature = (object = "optsol_optimizeProb"),
+setReplaceMethod("postProc", signature(object = "optsol_optimizeProb"),
                  function(object, value) {
                      object@postProc <- value
                      return(object)
diff --git a/R/optsol_phppClass.R b/R/optsol_phppClass.R
index 9d788ff27d711534eb78f92107d77680613d5a76..e8a6ae4c25eaed6d84a1cfa91b8dab3781b327eb 100644
--- a/R/optsol_phppClass.R
+++ b/R/optsol_phppClass.R
@@ -50,7 +50,7 @@ setMethod("ctrlfl", signature(object = "optsol_phpp"),
           }
 )
 
-setReplaceMethod("ctrlfl", signature = (object = "optsol_phpp"),
+setReplaceMethod("ctrlfl", signature(object = "optsol_phpp"),
                  function(object, value) {
                      object@ctrlflm <- value
                      return(object)
diff --git a/R/optsol_robAnaClass.R b/R/optsol_robAnaClass.R
index 18ca6899a69ea4d2862ee6ccb6aafa2b28f63674..b1baf8c83c0fd301edbc12b699943cdc79f10634 100644
--- a/R/optsol_robAnaClass.R
+++ b/R/optsol_robAnaClass.R
@@ -49,7 +49,7 @@ setMethod("ctrlr", signature(object = "optsol_robAna"),
           }
 )
 
-setReplaceMethod("ctrlr", signature = (object = "optsol_robAna"),
+setReplaceMethod("ctrlr", signature(object = "optsol_robAna"),
                  function(object, value) {
                      object@ctrlr <- value
                      return(object)
@@ -64,7 +64,7 @@ setMethod("ctrlfl", signature(object = "optsol_robAna"),
           }
 )
 
-setReplaceMethod("ctrlfl", signature = (object = "optsol_robAna"),
+setReplaceMethod("ctrlfl", signature(object = "optsol_robAna"),
                  function(object, value) {
                      object@ctrlfl <- value
                      return(object)
diff --git a/R/ppProcClass.R b/R/ppProcClass.R
index a38a12228c8beb0fb9f0be83aefa803c101ceb65..b9282cbeb3b5bd3f7a0824ad5c0547e731a9cdb6 100644
--- a/R/ppProcClass.R
+++ b/R/ppProcClass.R
@@ -68,7 +68,7 @@ setMethod("cmd", signature(object = "ppProc"),
           }
 )
 
-setReplaceMethod("cmd", signature = (object = "ppProc"),
+setReplaceMethod("cmd", signature(object = "ppProc"),
                  function(object, value) {
                      object@cmd <- value
                      return(object)
@@ -83,7 +83,7 @@ setMethod("pa", signature(object = "ppProc"),
           }
 )
 
-setReplaceMethod("pa", signature = (object = "ppProc"),
+setReplaceMethod("pa", signature(object = "ppProc"),
                  function(object, value) {
                      object@pa <- value
                      return(object)
@@ -98,7 +98,7 @@ setMethod("ind", signature(object = "ppProc"),
           }
 )
 
-setReplaceMethod("ind", signature = (object = "ppProc"),
+setReplaceMethod("ind", signature(object = "ppProc"),
                  function(object, value) {
                      object@ind <- value
                      return(object)
diff --git a/R/reactClass.R b/R/reactClass.R
new file mode 100644
index 0000000000000000000000000000000000000000..29ac5e840e90261bfc93e37b90ee5cbf099a7c07
--- /dev/null
+++ b/R/reactClass.R
@@ -0,0 +1,487 @@
+#  reactClass.R
+#  FBA and friends with R.
+#
+#  Copyright (C) 2010-2017 Claus Jonathan Fritzemeier, Dpt. for Computational Cell Biology,
+#  Institute for Informatics, Heinrich-Heine-University, Duesseldorf, Germany.
+#  All right reserved.
+#  Email: clausjonathan.fritzemeier@uni-duesseldorf.de
+#
+#  This file is part of sybil.
+#
+#  Sybil is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  Sybil is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with sybil.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# reactClass
+
+
+#------------------------------------------------------------------------------#
+#					   definition of the class react						#
+#------------------------------------------------------------------------------#
+
+setClass("react",
+	representation(
+		 react_rev	  = "logical",	   # vector reversibilities
+		 react_id	  = "character",   # reaction id
+		 react_name	  = "character",   # reaction name
+		 react_single = "logical",	   # reaction using metabolites appearing only once in S
+		 react_de	  = "logical",	   # reaction using dead end metabolites
+		 react_attr	  = "data.frame",  # reaction attributes
+		 met_id		  = "character",   # metabolites used in this reaction
+		 met_comp	  = "character",   # compartments of metabolites
+		 met_name	  = "character",   # metabolite names
+		 met_attr	  = "data.frame",  # metabolite attributes
+		 comp_attr	  = "data.frame",  # compartment attributes
+		 s			  = "numeric",	   # matrix S
+		 lowbnd		  = "numeric",	   # reaction lower bound
+		 uppbnd		  = "numeric",	   # reaction upper bound
+		 obj_coef	  = "numeric",	   # objective coefficient
+		 gprRule	  = "character",
+		 genes		  = "character",
+		 gpr		  = "character",
+		 subSys		  = "character"
+
+	),
+	validity = .validreact
+)
+
+
+#------------------------------------------------------------------------------#
+#							 default constructor							   #
+#------------------------------------------------------------------------------#
+
+setMethod(f = "initialize",
+			signature = "react",
+			definition = function(.Object, 
+								id,
+								name="",
+								rev=TRUE,
+								single=NA,
+								de=NA,
+								met_id,
+								met_name=NULL,
+								met_comp=NULL,
+								s,
+								lowbnd=-1000,
+								uppbnd=1000,
+								obj_coef=0,
+								gprRule="",
+								genes="",
+								gpr = "",
+								subSys = "",
+								met_attr = data.frame(),
+								react_attr = data.frame(),
+								comp_attr = data.frame()
+								) {
+			stopifnot(!missing(id))
+			stopifnot(!missing(met_id))
+			stopifnot(!missing(s))
+			
+			.Object@react_id <- id
+			.Object@react_name <- name
+			.Object@react_rev <- rev
+			.Object@react_single <- single
+			.Object@react_de <- de
+			.Object@met_id <- met_id
+			.Object@met_comp <- met_comp
+			.Object@met_name <- met_name
+			.Object@s <- s
+			.Object@lowbnd <- lowbnd
+			.Object@uppbnd <- uppbnd
+			.Object@obj_coef <- obj_coef
+			.Object@gprRule <- gprRule
+			.Object@genes <- genes
+			.Object@gpr <- gpr
+			.Object@subSys <- subSys
+			
+			.Object@met_attr <- met_attr
+			.Object@react_attr <- react_attr
+			.Object@comp_attr <- comp_attr
+			return(.Object)
+		  }
+)
+
+
+#------------------------------------------------------------------------------#
+#							 setters and getters							   #
+#------------------------------------------------------------------------------#
+
+# metabolite id's
+setMethod("met_id", signature(object = "react"),
+		  function(object) {
+			  return(object@met_id)
+		  }
+)
+
+setReplaceMethod("met_id", signature(object = "react"),
+		  function(object, value) {
+			  object@met_id <- value
+			  return(object)
+		  }
+)
+
+
+# metabolite names
+setMethod("met_name", signature(object = "react"),
+		  function(object) {
+			  return(object@met_name)
+		  }
+)
+
+setReplaceMethod("met_name", signature(object = "react"),
+		  function(object, value) {
+			  object@met_name <- value
+			  return(object)
+		  }
+)
+
+
+# metabolites compartments
+setMethod("met_comp", signature(object = "react"),
+		  function(object) {
+			  return(object@met_comp)
+		  }
+)
+
+setReplaceMethod("met_comp", signature(object = "react"),
+		  function(object, value) {
+			  object@met_comp <- value
+			  return(object)
+		  }
+)
+
+
+# reversibilities
+setMethod("react_rev", signature(object = "react"),
+		  function(object) {
+			  return(object@react_rev)
+		  }
+)
+
+setReplaceMethod("react_rev", signature(object = "react"),
+		  function(object, value) {
+			  object@react_rev <- value
+			  return(object)
+		  }
+)
+
+
+# reaction id's
+setMethod("react_id", signature(object = "react"),
+		  function(object) {
+			  return(object@react_id)
+		  }
+)
+
+setReplaceMethod("react_id", signature(object = "react"),
+		  function(object, value) {
+			  object@react_id <- value
+			  return(object)
+		  }
+)
+
+
+# reaction names
+setMethod("react_name", signature(object = "react"),
+		  function(object) {
+			  return(object@react_name)
+		  }
+)
+
+setReplaceMethod("react_name", signature(object = "react"),
+		  function(object, value) {
+			  object@react_name <- value
+			  return(object)
+		  }
+)
+
+
+# singletons
+setMethod("react_single", signature(object = "react"),
+		  function(object) {
+			  return(object@react_single)
+		  }
+)
+
+setReplaceMethod("react_single", signature(object = "react"),
+		  function(object, value) {
+			  object@react_single <- value
+			  return(object)
+		  }
+)
+
+
+# dead ends
+setMethod("react_de", signature(object = "react"),
+		  function(object) {
+			  return(object@react_de)
+		  }
+)
+
+setReplaceMethod("react_de", signature(object = "react"),
+		  function(object, value) {
+			  object@react_de <- value
+			  return(object)
+		  }
+)
+
+
+# stoichiometric matrix
+setMethod("s", signature(object = "react"),
+		  function(object) {
+			  return(object@s)
+		  }
+)
+
+setReplaceMethod("s", signature(object = "react"),
+		  function(object, value) {
+			  object@s <- value
+			  return(object)
+		  }
+)
+
+# lower bounds
+setMethod("lowbnd", signature(object = "react"),
+		  function(object) {
+			  return(object@lowbnd)
+		  }
+)
+
+setReplaceMethod("lowbnd", signature(object = "react"),
+		  function(object, value) {
+			  object@lowbnd <- value
+			  return(object)
+		  }
+)
+
+# upper bounds
+setMethod("uppbnd", signature(object = "react"),
+		  function(object) {
+			  return(object@uppbnd)
+		  }
+)
+
+setReplaceMethod("uppbnd", signature(object = "react"),
+		  function(object, value) {
+			  object@uppbnd <- value
+			  return(object)
+		  }
+)
+
+
+# objective coefficient
+setMethod("obj_coef", signature(object = "react"),
+		  function(object) {
+			  return(object@obj_coef)
+		  }
+)
+
+setReplaceMethod("obj_coef", signature(object = "react"),
+		  function(object, value) {
+			  object@obj_coef <- value
+			  return(object)
+		  }
+)
+
+
+# gprRules
+setMethod("gprRule", signature(object = "react"),
+		  function(object) {
+			  return(object@gprRule)
+		  }
+)
+
+setReplaceMethod("gprRule", signature(object = "react"),
+		  function(object, value) {
+			  object@gprRule <- value
+			  return(object)
+		  }
+)
+
+
+# genes
+setMethod("genes", signature(object = "react"),
+		  function(object) {
+			  return(object@genes)
+		  }
+)
+
+setReplaceMethod("genes", signature(object = "react"),
+		  function(object, value) {
+			  object@genes <- value
+			  return(object)
+		  }
+)
+
+
+# gpr associations
+setMethod("gpr", signature(object = "react"),
+		  function(object) {
+			  return(object@gpr)
+		  }
+)
+
+setReplaceMethod("gpr", signature(object = "react"),
+		  function(object, value) {
+			  object@gpr <- value
+			  return(object)
+		  }
+)
+
+
+# reaction sub systems
+setMethod("subSys", signature(object = "react"),
+		  function(object) {
+			  return(object@subSys)
+		  }
+)
+
+setReplaceMethod("subSys", signature(object = "react"),
+		  function(object, value) {
+			  object@subSys <- value
+			  return(object)
+		  }
+)
+
+
+# metabolites attributes
+setMethod("met_attr", signature(object = "react"),
+          function(object) {
+              return(object@met_attr)
+          }
+)
+
+setReplaceMethod("met_attr", signature(object = "react"),
+          function(object, value) {
+              object@met_attr <- value
+              return(object)
+          }
+)
+
+# reaction attributes
+setMethod("react_attr", signature(object = "react"),
+          function(object) {
+              return(object@react_attr)
+          }
+)
+
+setReplaceMethod("react_attr", signature(object = "react"),
+          function(object, value) {
+              object@react_attr <- value
+              return(object)
+          }
+)
+
+# compartment attributes
+setMethod("comp_attr", signature(object = "react"),
+          function(object) {
+              return(object@comp_attr)
+          }
+)
+
+setReplaceMethod("comp_attr", signature(object = "react"),
+          function(object, value) {
+              object@comp_attr <- value
+              return(object)
+          }
+)
+
+# model attributes
+setMethod("mod_attr", signature(object = "react"),
+          function(object) {
+              return(object@mod_attr)
+          }
+)
+
+setReplaceMethod("mod_attr", signature(object = "react"),
+          function(object, value) {
+              object@mod_attr <- value
+              return(object)
+          }
+)
+
+
+
+#------------------------------------------------------------------------------#
+#								other methods								   #
+#------------------------------------------------------------------------------#
+
+setMethod("show", signature(object = "react"),
+	function(object) {
+		cat("react id:              ", react_id(object), "\n")
+		cat("react name:            ", react_name(object), "\n")
+		cat("stoichiometry:\n")
+		print(data.frame(met_id=met_id(object), s_coef=s(object)))
+		cat("lower bound:           ", lowbnd(object), "\n")
+		cat("upper bound:           ", uppbnd(object), "\n")
+		cat("objective function:    ", obj_coef(object), "\n")
+	}
+)
+
+
+#------------------------------------------------------------------------------#
+
+# print reactions
+setMethod("printReaction", signature(object = "react"),
+	function(object, printOut = TRUE, ...) {
+	
+		mat <- s(object)
+		reaction <- character(1)
+
+		
+		met <- met_id(object)
+		nzv <- mat
+		
+		ed <- nzv < 0
+		pd <- nzv > 0
+
+		if (sum(ed) > 0) {
+			educt	<- paste(paste("(", abs(nzv[ed]), ")", sep = ""),
+							 met[ed], collapse = " + ")
+		}
+		else {
+			educt = ""
+		}
+
+		if (sum(pd) > 0) {
+			product <- paste(paste("(", nzv[pd], ")", sep = ""),
+							 met[pd], collapse = " + ")
+		}
+		else {
+			product = ""
+		}
+		
+		arrow <- ifelse(react_rev(object), " <==> ", " --> ")
+		
+		reaction <- paste(react_id(object),
+							 paste(educt, product, sep = arrow), sep = "\t")
+
+		if (isTRUE(printOut)) {
+		   cat("abbreviation\tequation", reaction, sep = "\n", ...)
+		}
+		
+		return(invisible(reaction))
+
+	}
+)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/R/reactIdClass.R b/R/reactIdClass.R
index ca6b6d5783a80a4b80988c941ffd1ce14d30dbd1..eadcfe4f423000e65743150f3c841d6d92a952ef 100644
--- a/R/reactIdClass.R
+++ b/R/reactIdClass.R
@@ -77,7 +77,7 @@ setMethod("mod_id", signature(object = "reactId"),
           }
 )
 
-setReplaceMethod("mod_id", signature = (object = "reactId"),
+setReplaceMethod("mod_id", signature(object = "reactId"),
                  function(object, value) {
                      object@mod_id <- value
                      return(object)
@@ -92,7 +92,7 @@ setMethod("mod_key", signature(object = "reactId"),
           }
 )
 
-setReplaceMethod("mod_key", signature = (object = "reactId"),
+setReplaceMethod("mod_key", signature(object = "reactId"),
                  function(object, value) {
                      object@mod_key <- value
                      return(object)
@@ -107,7 +107,7 @@ setMethod("react_pos", signature(object = "reactId"),
           }
 )
 
-setReplaceMethod("react_pos", signature = (object = "reactId"),
+setReplaceMethod("react_pos", signature(object = "reactId"),
                  function(object, value) {
                      object@react_pos <- value
                      return(object)
@@ -122,7 +122,7 @@ setMethod("react_id", signature(object = "reactId"),
           }
 )
 
-setReplaceMethod("react_id", signature = (object = "reactId"),
+setReplaceMethod("react_id", signature(object = "reactId"),
                  function(object, value) {
                      object@react_id <- value
                      return(object)
diff --git a/R/reactId_ExchClass.R b/R/reactId_ExchClass.R
index a09be51c779fa9ecddc50d599593ee6e3d0d2156..cb7669cafed8a54b8c1503b9d4bf6c4af9fc8d51 100644
--- a/R/reactId_ExchClass.R
+++ b/R/reactId_ExchClass.R
@@ -92,7 +92,7 @@ setMethod("met_pos", signature(object = "reactId_Exch"),
           }
 )
 
-setReplaceMethod("met_pos", signature = (object = "reactId_Exch"),
+setReplaceMethod("met_pos", signature(object = "reactId_Exch"),
                  function(object, value) {
                      object@met_pos <- value
                      return(object)
@@ -107,7 +107,7 @@ setMethod("met_id", signature(object = "reactId_Exch"),
           }
 )
 
-setReplaceMethod("met_id", signature = (object = "reactId_Exch"),
+setReplaceMethod("met_id", signature(object = "reactId_Exch"),
                  function(object, value) {
                      object@met_id <- value
                      return(object)
@@ -122,7 +122,7 @@ setMethod("lowbnd", signature(object = "reactId_Exch"),
           }
 )
 
-setReplaceMethod("lowbnd", signature = (object = "reactId_Exch"),
+setReplaceMethod("lowbnd", signature(object = "reactId_Exch"),
                  function(object, value) {
                      object@lowbnd <- value
                      return(object)
@@ -137,7 +137,7 @@ setMethod("uppbnd", signature(object = "reactId_Exch"),
           }
 )
 
-setReplaceMethod("uppbnd", signature = (object = "reactId_Exch"),
+setReplaceMethod("uppbnd", signature(object = "reactId_Exch"),
                  function(object, value) {
                      object@uppbnd <- value
                      return(object)
@@ -152,7 +152,7 @@ setMethod("uptake", signature(object = "reactId_Exch"),
           }
 )
 
-setReplaceMethod("uptake", signature = (object = "reactId_Exch"),
+setReplaceMethod("uptake", signature(object = "reactId_Exch"),
                  function(object, value) {
                      object@uptake <- value
                      return(object)
diff --git a/R/summaryOptsolClass.R b/R/summaryOptsolClass.R
index ef779e9a1c0eb936b2ca2a55013ddc699e05ca37..66d61113d03af391fcc3201bb0116c27a33b9ade 100644
--- a/R/summaryOptsolClass.R
+++ b/R/summaryOptsolClass.R
@@ -108,7 +108,7 @@ setMethod("mod_id", signature(object = "summaryOptsol"),
           }
 )
 
-setReplaceMethod("mod_id", signature = (object = "summaryOptsol"),
+setReplaceMethod("mod_id", signature(object = "summaryOptsol"),
                  function(object, value) {
                      object@mod_id <- value
                      return(object)
@@ -123,7 +123,7 @@ setMethod("mod_key", signature(object = "summaryOptsol"),
           }
 )
 
-setReplaceMethod("mod_key", signature = (object = "summaryOptsol"),
+setReplaceMethod("mod_key", signature(object = "summaryOptsol"),
                  function(object, value) {
                      object@mod_key <- value
                      return(object)
@@ -138,7 +138,7 @@ setMethod("mod_obj", signature(object = "summaryOptsol"),
           }
 )
 
-setReplaceMethod("mod_obj", signature = (object = "summaryOptsol"),
+setReplaceMethod("mod_obj", signature(object = "summaryOptsol"),
                  function(object, value) {
                      object@mod_obj <- value
                      return(object)
diff --git a/R/sysBiolAlgClass.R b/R/sysBiolAlgClass.R
index 44a6b565456a4f54fb49138c45262d798c00f55e..882ad7897a3fb07a41cba6e83ee1760ae560770a 100644
--- a/R/sysBiolAlgClass.R
+++ b/R/sysBiolAlgClass.R
@@ -186,7 +186,7 @@ setMethod("algorithm", signature(object = "sysBiolAlg"),
           }
 )
 
-setReplaceMethod("algorithm", signature = (object = "sysBiolAlg"),
+setReplaceMethod("algorithm", signature(object = "sysBiolAlg"),
                  function(object, value) {
                      object@algorithm <- value
                      return(object)
@@ -201,7 +201,7 @@ setMethod("nr", signature(object = "sysBiolAlg"),
           }
 )
 
-setReplaceMethod("nr", signature = (object = "sysBiolAlg"),
+setReplaceMethod("nr", signature(object = "sysBiolAlg"),
                  function(object, value) {
                      object@nr <- value
                      return(object)
@@ -216,7 +216,7 @@ setMethod("nc", signature(object = "sysBiolAlg"),
           }
 )
 
-setReplaceMethod("nc", signature = (object = "sysBiolAlg"),
+setReplaceMethod("nc", signature(object = "sysBiolAlg"),
                  function(object, value) {
                      object@nc <- value
                      return(object)
@@ -231,7 +231,7 @@ setMethod("fldind", signature(object = "sysBiolAlg"),
           }
 )
 
-setReplaceMethod("fldind", signature = (object = "sysBiolAlg"),
+setReplaceMethod("fldind", signature(object = "sysBiolAlg"),
                  function(object, value) {
                      object@fldind <- value
                      return(object)
@@ -246,7 +246,7 @@ setMethod("alg_par", signature(object = "sysBiolAlg"),
           }
 )
 
-setReplaceMethod("alg_par", signature = (object = "sysBiolAlg"),
+setReplaceMethod("alg_par", signature(object = "sysBiolAlg"),
                  function(object, value) {
                      object@alg_par <- value
                      return(object)
diff --git a/R/sysBiolAlg_lmomaClass.R b/R/sysBiolAlg_lmomaClass.R
index cba013b5e1402d942bf0ecc2028cec16840fb916..7d6944b1f809311edb07d70620344991cc56ab8c 100644
--- a/R/sysBiolAlg_lmomaClass.R
+++ b/R/sysBiolAlg_lmomaClass.R
@@ -154,7 +154,7 @@ setMethod(f = "initialize",
                                              sparse = TRUE)
           
                       # the final contraint matrix
-                      LHS <- rBind(LHSwt, LHS, crow)
+                      LHS <- rbind(LHSwt, LHS, crow)
           
                       subalg <- "lmoma_cobra"
                   }
diff --git a/R/validreact.R b/R/validreact.R
new file mode 100644
index 0000000000000000000000000000000000000000..0036dd2923c5e198c89c3f2053862ee09d1a6752
--- /dev/null
+++ b/R/validreact.R
@@ -0,0 +1,112 @@
+#  validreact.R
+#  FBA and friends with R.
+#
+#  Copyright (C) 2010-2017 Claus Jonathan Fritzemeier, Dpt. for Computational Cell Biology,
+#  Institute for Informatics, Heinrich-Heine-University, Duesseldorf, Germany.
+#  All right reserved.
+#  Email: clausjonathan.fritzemeier@uni-duesseldorf.de
+#
+#  This file is part of sybil.
+#
+#  Sybil is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  Sybil is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with sybil.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# validreact
+
+
+################################################
+# Function: .validreact
+#
+# Validity checking of an object of class react.
+#
+# Returns TRUE if the model is valid, otherwise
+# a character String containing a description of
+# the error.
+
+
+.validreact <- function(object) {
+	# data has to have the same length or to be NULL
+	if(!is(object, "react")){
+		"object is not of react class"
+	}
+	
+	if(length(object@id) != 1){
+		return("id has to be length 1")
+	}
+	if(length(object@name) != 1){
+		return("id has to be length 1")
+	}
+	
+	met_count <- length(object@s)
+	if(met_comp < 1){
+		return("reactions have to have at least one metabolite")
+	}
+	if(length(object@met_id) == met_count){
+		return("s, met_id, met_name, and met_comp have to have the same length")
+	}
+	if(length(object@met_name) == met_count && !is.null(object@met_name)){
+		return("s, met_id, met_name, and met_comp have to have the same length")
+	}
+	if(length(object@met_comp) == met_count && !is.null(object@met_comp)){
+		return("s, met_id, met_name, and met_comp have to have the same length")
+	}
+	
+	if(length(object@id)!=1){
+		return("length of id has to be 1")
+	}
+	if(length(object@rev)!=1){
+		return("length of rev has to be 1")
+	}
+	if(length(object@name)!=1){
+		return("length of name has to be 1")
+	}
+	if(length(object@lowbnd)!=1){
+		return("length of lowbnd has to be 1")
+	}
+	if(length(object@uppbnd)!=1){
+		return("length of uppbnd has to be 1")
+	}
+	if(length(object@obj_coef)!=1){
+		return("length of obj_coef has to be 1")
+	}
+	
+	if(!is.null(gprRule) && length(object@gprRule)!=1){
+		return("if not NULL, the length of gprRule has to be 1")
+	}
+	if(!is.null(genes) && length(object@genes)!=1){
+		return("if not NULL, the length of genes has to be 1")
+	}
+	if(!is.null(gpr) && length(object@gpr)!=1){
+		return("if not NULL, the length of gpr has to be 1")
+	}
+	if(!is.null(subSys) && length(object@subSys)!=1){
+		return("if not NULL, the length of subSys has to be 1")
+	}
+	
+	return(TRUE)
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd
index 8dd55d7d241dc3478fcd7f363f433c54ecdf6422..2608cff2ce707c391637840c237cfe6f084026c5 100644
--- a/inst/NEWS.Rd
+++ b/inst/NEWS.Rd
@@ -5,15 +5,38 @@
 \encoding{UTF-8}
 
 \newcommand{\CRANpkg}{\href{https://CRAN.R-project.org/package=#1}{\pkg{#1}}}
+% ---------------------------------------------------------------------------- %
+
+\section{Changes in version 2.1.1 2018-07-17}{
+  \itemize{
+  	\item Package sybilSBML gets rejected on CRAN, but can be downloaded
+  	at \url{http://www.cs.hhu.de/en/research-groups/computational-cell-biology/software.html}.
+  	\item Documentation for \code{react-class} and related methods.
+  	\
+  }
+}
+% ---------------------------------------------------------------------------- %
+
+\section{Changes in version 2.1.0 2017-07-17}{
+  \itemize{
+  	\item \code{addReact} is now a method of the \code{modelorg} class.
+  	\item Preparation for \code{sybilNLO}.
+  	\item New reaction object for easy merging and splitting of models. See \code{reactClass}.
+  	\item Typo in setting methods generated an character vector \code{object}.
+  	\
+  }
+}
+% ---------------------------------------------------------------------------- %
+
 
 \section{Changes in version 2.0.4 2017-07-18}{
   \itemize{
   	\item Minor changes for CRAN submission.
   }
 }
-% ---------------------------------------------------------------------------- %
 
-\section{Changes in version 2.0.3 2017-07-12}{
+
+\section{Changes in version 2.0.3 2017-04-20}{
   \itemize{
   	\item The function \code{genrateWT} caused a problem when setting only \code{solverParm} and no solver.
   	\item \code{rmReact} handles now \code{react_attr} and \code{met_attr} corretly, if there is just one column.
diff --git a/man/addReact.Rd b/man/addReact.Rd
index 2470300238be767f106697b71ef271d54d8a27dc..597e0788d64c35b03d416e9527f0121559009a2c 100644
--- a/man/addReact.Rd
+++ b/man/addReact.Rd
@@ -1,8 +1,12 @@
-\name{addReact}
-\alias{addReact}
-
+\name{addReact,modelorg-method}
+\docType{methods}
 \encoding{utf8}
 
+
+\alias{addReact}
+\alias{addReact,modelorg-method}
+\alias{addReact,modelorg,ANY-method}
+
 \title{
   Add/Change Reactions in a Model
 }
@@ -11,9 +15,15 @@
   The function \code{addReact} adds one reaction to a metabolic model, or
   changes one reaction in a metabolic model.
 }
-
+\section{Methods}{
+  \describe{
+    \item{\code{addReact}:}{
+      \code{signature(object = "modelorg")}: adds a new reaction to a \code{modelorg} object.
+    }
+  }
+}
 \usage{
-  addReact(model,
+\S4method{addReact}{modelorg}(model,
            id,
            met,
            Scoef,
diff --git a/man/mergeReact2Modelorg.Rd b/man/mergeReact2Modelorg.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..f451a94ae504fb66306288acbd9ffe717f55e57e
--- /dev/null
+++ b/man/mergeReact2Modelorg.Rd
@@ -0,0 +1,69 @@
+\name{mergeReact2Modelorg}
+
+\docType{methods}
+\encoding{utf8}
+
+\alias{mergeReact2Modelorg}
+\alias{getReaction}
+\alias{getReaction,modelorg-method}
+\alias{getReaction,modelorg,ANY-method}
+
+\title{
+	Functions to subset and merge modelorg objects.
+}
+\description{
+	The function \code{getReaction} can extract singe \code{react} objects from 
+	a modelorg object. If those \code{react} objects are saved in a list, they
+	can be passed to the function \code{mergeReact2Modelorg} to combine them to 
+	one new model.
+}
+\usage{
+mergeReact2Modelorg(reactList = NULL, id = "newModel", name = "")
+\S4method{getReaction}{modelorg,ANY}(X, j = NULL, drop = T, tol = SYBIL_SETTINGS("TOLERANCE"))
+}
+\arguments{
+  \item{reactList}{
+	list of \code{react} objects
+}
+  \item{id}{
+	id for the new \code{modelorg}
+}
+  \item{name}{
+	name for the new \code{modelorg}
+}
+\item{j}{
+	defines the reaction numbers or IDs to extract from the model.
+}
+\item{drop}{
+	If FALSE, a list of length 1 is returned.
+}
+\item{tol}{
+	Threshold for coefficients to be unequal zero.
+}
+\item{X}{
+	\code{modelorg} object to extract reactions from.
+}
+}
+\value{
+	mergeReact2Modelorg returns a \code{modelorg} object.
+	
+	getReaction returns a \code{react} object if \code{length(j) = 1} and \code{drop = TRUE}. Otherwise
+	a list of \code{react} objects.
+}
+\author{
+  Claus Jonathan Fritzemeier <clausjonathan.fritzemeier@uni-duesseldorf.de>
+}
+
+\seealso{
+	\code{\link{modelorg}}, \code{\link{react}}
+}
+\examples{
+	data(Ec_core)
+	l <- getReaction(Ec_core, j=1:3)
+	print(l)
+	m <- mergeReact2Modelorg(l)
+	print(m)
+
+}
+\keyword{ subset }
+\keyword{ merge }
diff --git a/man/modelorg-class.Rd b/man/modelorg-class.Rd
index dfeb47d779bbd9cd0189f77d9ff4c2d13b05cad5..ad83d5f1a42ccdfe626c48f9eeefdcebd06f715f 100644
--- a/man/modelorg-class.Rd
+++ b/man/modelorg-class.Rd
@@ -139,6 +139,90 @@
 \alias{version<-}
 \alias{version}
 
+\alias{react-class}
+\alias{react}
+\alias{comp_attr,react-method}
+\alias{comp_attr}
+\alias{comp_attr<-,react-method}
+\alias{comp_attr<-}
+\alias{genes,react-method}
+\alias{genes}
+\alias{genes<-,react-method}
+\alias{genes<-}
+\alias{gpr,react-method}
+\alias{gpr}
+\alias{gpr<-,react-method}
+\alias{gpr<-}
+\alias{gprRule,react-method}
+\alias{gprRule}
+\alias{gprRule<-,react-method}
+\alias{gprRule<-}
+\alias{lowbnd,react-method}
+\alias{lowbnd}
+\alias{lowbnd<-,react-method}
+\alias{lowbnd<-}
+\alias{met_attr,react-method}
+\alias{met_attr}
+\alias{met_attr<-,react-method}
+\alias{met_attr<-}
+\alias{met_comp,react-method}
+\alias{met_comp}
+\alias{met_comp<-,react-method}
+\alias{met_comp<-}
+\alias{met_id,react-method}
+\alias{met_id}
+\alias{met_id<-,react-method}
+\alias{met_id<-}
+\alias{met_name,react-method}
+\alias{met_name}
+\alias{met_name<-,react-method}
+\alias{met_name<-}
+\alias{mod_attr,react-method}
+\alias{mod_attr}
+\alias{mod_attr<-,react-method}
+\alias{mod_attr<-}
+\alias{obj_coef,react-method}
+\alias{obj_coef}
+\alias{obj_coef<-,react-method}
+\alias{obj_coef<-}
+\alias{react_attr,react-method}
+\alias{react_attr}
+\alias{react_attr<-,react-method}
+\alias{react_attr<-}
+\alias{react_de,react-method}
+\alias{react_de}
+\alias{react_de<-,react-method}
+\alias{react_de<-}
+\alias{react_id,react-method}
+\alias{react_id}
+\alias{react_id<-,react-method}
+\alias{react_id<-}
+\alias{react_name,react-method}
+\alias{react_name}
+\alias{react_name<-,react-method}
+\alias{react_name<-}
+\alias{react_rev,react-method}
+\alias{react_rev}
+\alias{react_rev<-,react-method}
+\alias{react_rev<-}
+\alias{react_single,react-method}
+\alias{react_single}
+\alias{react_single<-,react-method}
+\alias{react_single<-}
+\alias{s,react-method}
+\alias{s}
+\alias{s<-,react-method}
+\alias{s<-}
+\alias{subSys,react-method}
+\alias{subSys}
+\alias{subSys<-,react-method}
+\alias{subSys<-}
+\alias{uppbnd,react-method}
+\alias{uppbnd}
+\alias{uppbnd<-,react-method}
+\alias{uppbnd<-}
+
+
 \encoding{utf8}
 
 \title{Structure of Class "modelorg"}
@@ -146,6 +230,10 @@
 \description{
   Structure of the class \code{"modelorg"}. Objects of that class are
   returned by functions like \code{\link{readTSVmod}}.
+  
+  Structure of the class \code{"react"}. This depicts a subset of a metabolic model
+  that contains only one reaction. Multiple \code{react} objects can be combined to an
+  \code{"modelorg"} object.
 }
 
 \section{Objects from the Class}{
diff --git a/man/optsol_blockedReact-class.Rd b/man/optsol_blockedReact-class.Rd
index 4f0450be7700183b3a2be87f953bd530aee89247..2a611e2c419d6ed29dccbd9e158a207b21fa2e6e 100644
--- a/man/optsol_blockedReact-class.Rd
+++ b/man/optsol_blockedReact-class.Rd
@@ -11,7 +11,6 @@
 \alias{blocked<-}
 \alias{react,optsol_blockedReact-method}
 \alias{react<-,optsol_blockedReact-method}
-\alias{react}
 \alias{react<-}
 \alias{maxSol,optsol_blockedReact-method}
 \alias{minSol,optsol_blockedReact-method}
diff --git a/man/printReaction-methods.Rd b/man/printReaction-methods.Rd
index 715779ac2661ba3eca2a3e1f10a78952a0ceae79..e4e1880af15664da340698ef9bcccd3feea8d61e 100644
--- a/man/printReaction-methods.Rd
+++ b/man/printReaction-methods.Rd
@@ -7,6 +7,7 @@
 \alias{printReaction-methods}
 \alias{printReaction,modelorg,ANY-method}
 \alias{printReaction,summaryOptsol,modelorg-method}
+\alias{printReaction,react,ANY-method}
 
 \title{Print Columns of the Stoichiometric Matrix}
 
@@ -17,6 +18,7 @@
 \usage{
 \S4method{printReaction}{modelorg,ANY}(object, react, printOut = TRUE, ...)
 \S4method{printReaction}{summaryOptsol,modelorg}(object, mod, j, ...)
+\S4method{printReaction}{react,ANY}(object, printOut = TRUE, ...)
 }
 
 \section{Methods}{
@@ -27,6 +29,9 @@
     \item{\code{signature(object = "summaryOptsol", mod = "modelorg")}}{
       method to use with objects of class \code{\linkS4class{summaryOptsol}}.
     }
+    \item{\code{signature(object = "react", ...)}}{
+      method to use with objects of class \code{\linkS4class{react}}.
+    }
   }
 }