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/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/mergeReact2Modelorg.R b/R/mergeReact2Modelorg.R
index 4c71ea876c52b31128d2bfdf05c8bef6479a06b9..2f4f58644c0da9e9e241016d26b6baaad8734285 100644
--- a/R/mergeReact2Modelorg.R
+++ b/R/mergeReact2Modelorg.R
@@ -47,18 +47,22 @@ mergeReact2Modelorg <- function(reactList = NULL, id="newModel", name=""){
 	
 	reacts <- sapply(reactList, react_id)
 	if(anyDuplicated(reacts)){
-		stop("reaction ids have to be unique")
+		stop("reaction ids have to be unique.")
 	}
 	react_id(morg) <- reacts
+	react_num(morg) <- length(reacts)
 	
-	met_id <- unique(unlist(sapply(reactList, met_id)))
+	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){
-		stopifnot(all(met_name[met_id(r)] == "" | met_name[met_id(r)] == met_name(r)))
+		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
@@ -86,18 +90,67 @@ mergeReact2Modelorg <- function(reactList = NULL, id="newModel", name=""){
 	
 	subSys <- Matrix(F, ncol=length(subsUnique), nrow=length(reacts))
 	for(i in seq(along=reactList)){
-		if(length(subSys(r))> 0 ){
-			j <- match(subSys(r), subsUnique)
-			S[i, j] <- T
+		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) <- unqiue(unlist(genes(morg)))
+	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 a8da37cc8627a08dafdc603d0bacd476722dbb14..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)
@@ -979,13 +979,32 @@ setMethod("getReaction", signature(X = "modelorg"),
 		}
 		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=met_comp(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],
@@ -993,13 +1012,18 @@ setMethod("getReaction", signature(X = "modelorg"),
 				gprRule=gprRules(X)[r],
 				genes=genes(X)[[r]],
 				gpr = gpr(X)[r],
-				subSys = colnames(subSys(X))[subSys(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
index 13c7337870810314d3d7e06f570128f4d0819f03..029bf1a85c45af831ff15eb9384169be999280ad 100644
--- a/R/reactClass.R
+++ b/R/reactClass.R
@@ -36,9 +36,12 @@ setClass("react",
 		 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	  = "integer",   # compartments of metabolites
+		 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
@@ -72,10 +75,13 @@ setMethod(f = "initialize",
 								lowbnd=-1000,
 								uppbnd=1000,
 								obj_coef=0,
-								gprRule=NULL,
-								genes=NULL,
-								gpr = NULL,
-								subSys = NULL
+								gprRule="",
+								genes="",
+								gpr = "",
+								subSys = "",
+								met_attr = data.frame(),
+								react_attr = data.frame(),
+								comp_attr = data.frame()
 								) {
 			stopifnot(!missing(id))
 			stopifnot(!missing(met_id))
@@ -97,6 +103,10 @@ setMethod(f = "initialize",
 			.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)
 		  }
 )
@@ -344,6 +354,64 @@ setReplaceMethod("subSys", signature(object = "react"),
 )
 
 
+# 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								   #
 #------------------------------------------------------------------------------#
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/inst/NEWS.Rd b/inst/NEWS.Rd
index 620fda7b99bb7570c3023c66807944a182c6c2e9..5aec78802c744ea76ce88b866145de3f6693ec64 100644
--- a/inst/NEWS.Rd
+++ b/inst/NEWS.Rd
@@ -6,6 +6,16 @@
 
 \newcommand{\CRANpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}}
 
+\section{Changes in version 2.0.3 2017-04-20}{
+  \itemize{
+  	\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.3 2017-04-20}{
   \itemize{
   	\item The function \code{genrateWT} caused a problem when setting only \code{solverParm} and no solver.