private Shape createShapeWithTwoParameters(BufferedReader reader,
			String shape, ShapeColor color, Map<String, String[]> shapeMap) {

		// Ask for 2 parameters
		System.out.println(shapeMap.get(shape)[0] + ":");
		double param1 = readParameter(reader);
		System.out.println(shapeMap.get(shape)[1] + ":");
		double param2 = readParameter(reader);

		// Create class
		try {
			shape = "Shapes." + StringUtils.capitalize(shape);
			Class<?> newShape = Class.forName(shape);
			Class[] parameters = new Class[] { ShapeColor.class, double.class,
					double.class };
			Constructor<?> constructor = newShape.asSubclass(Shape.class)
					.getConstructor(parameters);
			Object objShape = constructor.newInstance(color, param1, param2);
			return (Shape) objShape;

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}

		return null;
	}