Index: java/main/src/main/java/com/framsticks/params/ParamBuilder.java
===================================================================
--- java/main/src/main/java/com/framsticks/params/ParamBuilder.java	(revision 84)
+++ java/main/src/main/java/com/framsticks/params/ParamBuilder.java	(revision 85)
@@ -55,4 +55,7 @@
 	private PrimitiveParam primitiveParam;
 
+	ParamBuilder() {
+	}
+
 	/**
 	 * Build Param based on provided data.
@@ -62,5 +65,5 @@
 	 *             when Param getType is not defined
 	 */
-	public Param build()  {
+	public Param finish()  {
 		assert param != null;
 		param.id = id;
@@ -73,5 +76,5 @@
 	}
 
-	public ParamBuilder setId(String id) {
+	public ParamBuilder id(String id) {
 		this.id = id;
 		return this;
@@ -87,16 +90,14 @@
 	}
 
-	public <T extends Param> ParamBuilder setType(Class<T> type) {
+	public <T extends Param> ParamBuilder type(Class<T> type) {
 		try {
 			return internalSetType(type, type.newInstance());
-		} catch (InstantiationException e) {
+		} catch (InstantiationException | IllegalAccessException e) {
 			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		}
-		return this;
-	}
-
-	public <T extends Param> ParamBuilder setType(T param) {
+		}
+		return this;
+	}
+
+	public <T extends Param> ParamBuilder type(T param) {
 		return internalSetType(param.getClass(), param);
 	}
@@ -108,15 +109,15 @@
 	}
 
-	public ParamBuilder setGroup(Integer group) {
+	public ParamBuilder group(Integer group) {
 		this.group = group;
 		return this;
 	}
 
-	public ParamBuilder setFlags(Integer flags) {
+	public ParamBuilder flags(Integer flags) {
 		this.flags = flags;
 		return this;
 	}
 
-	public ParamBuilder setName(String name) {
+	public ParamBuilder name(String name) {
 		this.name = name;
 		return this;
@@ -142,5 +143,5 @@
 	}
 
-	public ParamBuilder setType(String type) {
+	public ParamBuilder type(String type) {
 
 		log.trace("parsing type: " + type);
@@ -153,5 +154,5 @@
 		switch (first.charAt(0)) {
 			case 'o': {
-				setType(new ObjectParam(second != null ? second : first.substring(1)));
+				type(new ObjectParam(second != null ? second : first.substring(1)));
 				break;
 			}
@@ -164,5 +165,5 @@
 					log.error("invalid procedure signature '" + signature + "': " + e);
 				}
-				setType(procedureParam);
+				type(procedureParam);
 				break;
 			}
@@ -171,23 +172,27 @@
 				int tildeIndex = type.indexOf("~");
 				if (tildeIndex != -1) {
-					setType(new EnumParam(new ArrayList<String>(Arrays.asList(type.substring(tildeIndex + 1).split("~")))));
+					type(new EnumParam(new ArrayList<String>(Arrays.asList(type.substring(tildeIndex + 1).split("~")))));
 				} else {
 					if (first.length() >= 2) {
-				switch (first.charAt(1)) {
+						switch (first.charAt(1)) {
 							case 'b': {
-								setType(BinaryParam.class);
+								type(BinaryParam.class);
 								break;
 							}
 							case 'c': {
-								setType(ColorParam.class);
+								type(ColorParam.class);
 								break;
+							}
+							default: {
+								log.error("unknown type: " + first);
+								return this;
 							}
 						}
 					}
 					if ("0".equals(second) && "1".equals(third)) {
-						setType(BooleanParam.class);
+						type(BooleanParam.class);
 					}
 					if (param == null) {
-						setType(DecimalParam.class);
+						type(DecimalParam.class);
 					}
 				}
@@ -198,32 +203,35 @@
 			}
 			case 'f': {
-				setType(FloatParam.class);
+				type(FloatParam.class);
 				parseMinMaxDefNumber(Double.class, second, third);
 				break;
 			}
 			case 'x': {
-				setType(UniversalParam.class);
+				type(UniversalParam.class);
 				break;
 			}
 			case 's': {
-				setType(StringParam.class);
-				setMin(second);
-				setMax(third);
+				type(StringParam.class);
+				min(second);
+				max(third);
 				break;
 			}
 			case 'e': {
-				setType(EventParam.class);
+				type(EventParam.class);
 				break;
 			}
 			case 'l': {
-				setType(third != null ? new UniqueListParam(second, third) : new ArrayListParam(second));
-				break;
-			}
-
-		}
-		return this;
-	}
-
-	public ParamBuilder setHelp(String help) {
+				type(third != null ? new UniqueListParam(second, third) : new ArrayListParam(second));
+				break;
+			}
+			default:{
+				log.error("unknown type: " + first);
+				return this;
+			}
+		}
+		return this;
+	}
+
+	public ParamBuilder help(String help) {
 		this.help = help;
 		return this;
@@ -237,5 +245,5 @@
 	}
 
-	public <T> ParamBuilder setMin(T min) {
+	public <T> ParamBuilder min(T min) {
 		if (primitiveParam != null) {
 			this.primitiveParam.min = min;
@@ -244,5 +252,5 @@
 	}
 
-	public <T> ParamBuilder setMax(T max) {
+	public <T> ParamBuilder max(T max) {
 		if (primitiveParam != null) {
 			this.primitiveParam.max = max;
@@ -251,5 +259,5 @@
 	}
 
-	public <T> ParamBuilder setDef(T def) {
+	public <T> ParamBuilder def(T def) {
 		if (def != null && primitiveParam != null) {
 			this.primitiveParam.def = def;
@@ -277,10 +285,10 @@
 
 		try {
-			setId(paramEntryValues[0]);
-			setGroup(Integer.valueOf(paramEntryValues[1]));
-			setFlags(Flags.read(paramEntryValues[2]));
-			setName(paramEntryValues[3]);
-			setType(paramEntryValues[4]);
-			setHelp(paramEntryValues[6]);
+			id(paramEntryValues[0]);
+			group(Integer.valueOf(paramEntryValues[1]));
+			flags(Flags.read(paramEntryValues[2]));
+			name(paramEntryValues[3]);
+			type(paramEntryValues[4]);
+			help(paramEntryValues[6]);
 		} catch (IndexOutOfBoundsException e) {
 			/** everything is ok, parameters have just finished*/
@@ -290,20 +298,30 @@
 			return null;
 		}
-		return build();
+		return finish();
 	}
 
 	public void setField(String key, String value) {
-		if (key.equals(ID_FIELD)) {
-			setId(value);
-		} else if (key.equals(NAME_FIELD)) {
-			setName(value);
-		} else if (key.equals(TYPE_FIELD)) {
-			setType(value);
-		} else if (key.equals(FLAGS_FIELD)) {
-			setFlags(Flags.read(value));
-		} else if (key.equals(HELP_FIELD)) {
-			setHelp(value);
-		} else if (key.equals(GROUP_FIELD)) {
-			setGroup(Integer.valueOf(value));
+		switch (key) {
+			case ID_FIELD:
+				id(value);
+				break;
+			case NAME_FIELD:
+				name(value);
+				break;
+			case TYPE_FIELD:
+				type(value);
+				break;
+			case FLAGS_FIELD:
+				flags(Flags.read(value));
+				break;
+			case HELP_FIELD:
+				help(value);
+				break;
+			case GROUP_FIELD:
+				group(Integer.valueOf(value));
+				break;
+			default:
+				log.error("unknown field for Param: " + key);
+				break;
 		}
 	}
@@ -312,9 +330,10 @@
 	public static FramsClass getFramsClass() {
 		return new FramsClass("prop", "prop", null)
-				.append(new ParamBuilder().setId("name").setName("Name").setType(StringParam.class).build())
-				.append(new ParamBuilder().setId("id").setName("Id").setType(StringParam.class).build())
-				.append(new ParamBuilder().setId("type").setName("Type").setType(StringParam.class).build())
-				.append(new ParamBuilder().setId("help").setName("Help").setType(StringParam.class).build())
-				.append(new ParamBuilder().setId("flags").setName("Flags").setType(DecimalParam.class).build());
+			.append(Param.build().id("name").name("Name").type(StringParam.class))
+			.append(Param.build().id("id").name("Id").type(StringParam.class))
+			.append(Param.build().id("type").name("Type").type(StringParam.class))
+			.append(Param.build().id("help").name("Help").type(StringParam.class))
+			.append(Param.build().id("group").name("Group").type(DecimalParam.class))
+			.append(Param.build().id("flags").name("Flags").type(DecimalParam.class));
 	}
 
