Index: src/Actions/ShapeAction/CreateShapeAction.cpp
===================================================================
--- src/Actions/ShapeAction/CreateShapeAction.cpp	(revision d475a6a0999cac8aeb6aff8e333ae87daa0a514d)
+++ src/Actions/ShapeAction/CreateShapeAction.cpp	(revision 842aac61c6439ac82216b2a76ac58cea36787afe)
@@ -54,5 +54,7 @@
   LOG(1, "Adding shape into ShapeRegistry.");
 
-  Shape s = ShapeFactory::getInstance().produce();
+  Shape s = ShapeFactory::getInstance().produce(ShapeFactory::getInstance().getShapeByName(params.shape_type.get()),
+      params.translation.get(), params.stretch.get(),
+      params.angle_x.get(), params.angle_y.get(), params.angle_z.get());
   if (params.shape_name.get() != "")
     s.setName(params.shape_name.get());
@@ -80,7 +82,7 @@
   ShapeCreateShapeState *state = assert_cast<ShapeCreateShapeState*>(_state.get());
 
-  Shape s = ShapeFactory::getInstance().produce();
+  /*Shape s = ShapeFactory::getInstance().produce();
   s.setName(state->old_name);
-  ShapeRegistry::getInstance().addShape(s);
+  ShapeRegistry::getInstance().addShape(s);*/
 
   return Action::state_ptr(_state);
Index: src/Actions/ShapeAction/CreateShapeAction.def
===================================================================
--- src/Actions/ShapeAction/CreateShapeAction.def	(revision d475a6a0999cac8aeb6aff8e333ae87daa0a514d)
+++ src/Actions/ShapeAction/CreateShapeAction.def	(revision 842aac61c6439ac82216b2a76ac58cea36787afe)
@@ -10,15 +10,23 @@
 
 #include "Parameters/Validators/DummyValidator.hpp"
+#include "Parameters/Validators/Specific/ShapeTypeValidator.hpp"
+#include "Parameters/Validators/Specific/VectorPositiveComponentsValidator.hpp"
 
 // i.e. there is an integer with variable name Z that can be found in
 // ValueStorage by the token "Z" -> first column: int, Z, "Z"
 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (std::string)
-#define paramtokens ("shape-name")
-#define paramdescriptions ("name shape to create")
-#define paramdefaults (PARAM_DEFAULT(std::string("")))
-#define paramreferences (shape_name)
+#define paramtypes (std::string)(std::string)(Vector)(Vector)(double)(double)(double)
+#define paramtokens ("shape-name")("shape-type")("translation")("stretch")("angle-x")("angle-y")("angle-z")
+#define paramdescriptions ("name shape to create")("type of shape to create")("translation distance")("scaling factors")("rotation x")("rotation y")("rotation z")
+#define paramdefaults (PARAM_DEFAULT(std::string("")))(NOPARAM_DEFAULT)(PARAM_DEFAULT(Vector(0.,0.,0.)))(PARAM_DEFAULT(Vector(1.,1.,1.)))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))
+#define paramreferences (shape_name)(shape_type)(translation)(stretch)(angle_x)(angle_y)(angle_z)
 #define paramvalids \
-(DummyValidator<std::string>())
+(DummyValidator<std::string>()) \
+(ShapeTypeValidator()) \
+(DummyValidator<Vector>()) \
+(VectorPositiveComponentsValidator()) \
+(DummyValidator<double>()) \
+(DummyValidator<double>()) \
+(DummyValidator<double>())
 
 #define statetypes (std::string)
@@ -35,4 +43,4 @@
 
 // finally the information stored in the ActionTrait specialization
-#define DESCRIPTION "sets the properties for the next shape to be created by the shape factory"
+#define DESCRIPTION "creates a new shape and puts it into the ShapeRegistry"
 #undef SHORTFORM
Index: src/Actions/ShapeAction/SetShapeAction.cpp
===================================================================
--- src/Actions/ShapeAction/SetShapeAction.cpp	(revision d475a6a0999cac8aeb6aff8e333ae87daa0a514d)
+++ 	(revision )
@@ -1,103 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- *
- *
- *   This file is part of MoleCuilder.
- *
- *    MoleCuilder 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 2 of the License, or
- *    (at your option) any later version.
- *
- *    MoleCuilder 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 MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * SetShapeAction.cpp
- *
- *  Created on: Sep 6, 2012
- *      Author: ankele
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "Shapes/ShapeFactory.hpp"
-#include "CodePatterns/Log.hpp"
-#include "CodePatterns/Verbose.hpp"
-
-#include <iostream>
-#include <string>
-
-#include "SetShapeAction.hpp"
-
-using namespace MoleCuilder;
-
-// and construct the stuff
-#include "SetShapeAction.def"
-#include "Action_impl_pre.hpp"
-/** =========== define the function ====================== */
-Action::state_ptr ShapeSetShapeAction::performCall() {
-  ShapeFactory &factory = ShapeFactory::getInstance();
-  LOG(1, "Setting shape factory to: '" << params.shape_type.get() << "'");
-
-  const std::string old_type = factory.getShapeName(factory.getType());
-  Vector old_translation = factory.getTranslation();
-  Vector old_stretch = factory.getStretch();
-  double old_angle_x = factory.getAngle()[0];
-  double old_angle_y = factory.getAngle()[1];
-  double old_angle_z = factory.getAngle()[2];
-
-  factory.setType(factory.getShapeByName(params.shape_type.get()));
-  factory.setTranslation(params.translation.get());
-  factory.setStretch(params.stretch.get());
-  factory.setAngle(params.angle_x.get(), params.angle_y.get(), params.angle_z.get());
-
-  return Action::state_ptr(new ShapeSetShapeState(old_type, old_translation, old_stretch, old_angle_x, old_angle_y, old_angle_z, params));
-}
-
-Action::state_ptr ShapeSetShapeAction::performUndo(Action::state_ptr _state) {
-  ShapeFactory &factory = ShapeFactory::getInstance();
-  ShapeSetShapeState *state = assert_cast<ShapeSetShapeState*>(_state.get());
-
-  LOG(1, "INFO: Reverting shape factory to '" << state->old_type << "'.");
-
-  factory.setType(factory.getShapeByName(state->old_type));
-  factory.setTranslation(state->old_translation);
-  factory.setStretch(state->old_stretch);
-  factory.setAngle(state->old_angle_x, state->old_angle_y, state->old_angle_z);
-
-  return Action::state_ptr(_state);
-}
-
-Action::state_ptr ShapeSetShapeAction::performRedo(Action::state_ptr _state){
-  ShapeFactory &factory = ShapeFactory::getInstance();
-
-  factory.setType(factory.getShapeByName(params.shape_type.get()));
-  factory.setTranslation(params.translation.get());
-  factory.setStretch(params.stretch.get());
-  factory.setAngle(params.angle_x.get(), params.angle_y.get(), params.angle_z.get());
-
-  return Action::state_ptr(_state);
-}
-
-bool ShapeSetShapeAction::canUndo() {
-  return true;
-}
-
-bool ShapeSetShapeAction::shouldUndo() {
-  return true;
-}
-/** =========== end of function ====================== */
Index: src/Actions/ShapeAction/SetShapeAction.def
===================================================================
--- src/Actions/ShapeAction/SetShapeAction.def	(revision d475a6a0999cac8aeb6aff8e333ae87daa0a514d)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/*
- * SetShapeAction.def
- *
- *  Created on: Sep 6, 2012
- *      Author: ankele
- */
-
-// all includes and forward declarations necessary for non-integral types below
-#include <boost/filesystem.hpp>
-
-#include "Parameters/Validators/DummyValidator.hpp"
-#include "Parameters/Validators/Specific/ShapeTypeValidator.hpp"
-#include "Parameters/Validators/Specific/VectorPositiveComponentsValidator.hpp"
-
-// i.e. there is an integer with variable name Z that can be found in
-// ValueStorage by the token "Z" -> first column: int, Z, "Z"
-// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (std::string)(Vector)(Vector)(double)(double)(double)
-#define paramtokens ("shape-type")("translation")("stretch")("angle-x")("angle-y")("angle-z")
-#define paramdescriptions ("type of shape to create")("translation distance")("scaling factors")("rotation x")("rotation y")("rotation z")
-#define paramdefaults (NOPARAM_DEFAULT)(PARAM_DEFAULT(Vector(0.,0.,0.)))(PARAM_DEFAULT(Vector(1.,1.,1.)))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))
-#define paramreferences (shape_type)(translation)(stretch)(angle_x)(angle_y)(angle_z)
-#define paramvalids \
-(ShapeTypeValidator()) \
-(DummyValidator<Vector>()) \
-(VectorPositiveComponentsValidator()) \
-(DummyValidator<double>()) \
-(DummyValidator<double>()) \
-(DummyValidator<double>())
-
-#define statetypes (std::string)(Vector)(Vector)(double)(double)(double)
-#define statereferences (old_type)(old_translation)(old_stretch)(old_angle_x)(old_angle_y)(old_angle_z)
-
-// some defines for all the names, you may use ACTION, STATE and PARAMS
-#define CATEGORY Shape
-#define MENUNAME "shape"
-#define MENUPOSITION 1
-#define ACTIONNAME SetShape
-#define TOKEN "set-shape"
-
-
-// finally the information stored in the ActionTrait specialization
-#define DESCRIPTION "sets the properties for the next shape to be created by the shape factory"
-#undef SHORTFORM
Index: src/Actions/ShapeAction/SetShapeAction.hpp
===================================================================
--- src/Actions/ShapeAction/SetShapeAction.hpp	(revision d475a6a0999cac8aeb6aff8e333ae87daa0a514d)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/*
- * SetShapeAction.hpp
- *
- *  Created on: Sep 6, 2012
- *      Author: ankele
- */
-
-#ifndef SETSHAPEACTION_HPP_
-#define SETSHAPEACTION_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "Actions/Action.hpp"
-
-#include "SetShapeAction.def"
-#include "Action_impl_header.hpp"
-
-#endif /* SETSHAPEACTION_HPP_ */
