diff --git a/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java b/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
index 794a3b4947451d467a24209a17c53fe03dbebb05..22cde99f8a1890bfa8a4359b3826653f23a13fa1 100644
--- a/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
+++ b/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
@@ -225,4 +225,14 @@ public class FloatPowerSpeedFocusFrequencyProperty implements LaserProperty
   {
     return null;
   }
+
+  @Override
+  public Class getPropertyClass(String name)
+  {
+    if ("power".equals(name)||"speed".equals(name)||"focus".equals(name)||"frequency".equals(name))
+    {
+      return Float.class;
+    }
+    return null;
+  }
 }
diff --git a/src/com/t_oster/liblasercut/LaserProperty.java b/src/com/t_oster/liblasercut/LaserProperty.java
index 79709673168ce973b1189ed103be7ec7c4fb4d1b..4d41e538e6bd4971ac182ab9041665da5481d351 100644
--- a/src/com/t_oster/liblasercut/LaserProperty.java
+++ b/src/com/t_oster/liblasercut/LaserProperty.java
@@ -18,8 +18,6 @@
  **/
 package com.t_oster.liblasercut;
 
-import java.util.List;
-
 /**
  * The LaserProperty holds all the parameters for parts of the LaserJob.
  * The Frequency value is ignored for Engraving operations
@@ -46,6 +44,14 @@ public interface LaserProperty extends Cloneable
   
   public abstract void setProperty(String name, Object value);
   
+  /**
+   * If name is a name of a vaild property, return the class
+   * of this property's objects. else return null
+   * @param name
+   * @return 
+   */
+  public abstract Class getPropertyClass(String name);
+  
   /**
    * returns the minimum value of this property if it is
    * of type Double, Integer or Float and a minimum value
diff --git a/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java b/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
index 5e66170445b8dfd57b23a7c67257cbf3f6cc8227..ecfebbc5d82552f41f23231857d8dde3a1d557a2 100644
--- a/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
+++ b/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
@@ -118,6 +118,16 @@ public class PowerSpeedFocusFrequencyProperty extends PowerSpeedFocusProperty
     }
   }
   
+  @Override
+  public Class getPropertyClass(String name)
+  {
+    if ("frequency".equals(name))
+    {
+      return Integer.class;
+    }
+    return super.getPropertyClass(name);
+  }
+  
   @Override
   public PowerSpeedFocusFrequencyProperty clone()
   {
diff --git a/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java b/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
index 2493e313d7c7d3984074dcdf91ebe8650f6e7cd9..687179ba8a88d9b83da3dd0b90e21e4d59ab1103 100644
--- a/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
+++ b/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
@@ -192,6 +192,20 @@ public class PowerSpeedFocusProperty implements LaserProperty
     }
   }
 
+  @Override 
+  public Class getPropertyClass(String name)
+  {
+    if ("power".equals(name)||"speed".equals(name))
+    {
+      return Integer.class;
+    }
+    else if ("focus".equals(name))
+    {
+      return Float.class;
+    }
+    return null;
+  }
+  
   @Override
   public Object[] getPossibleValues(String name)
   {