diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0b3c7a1489ee0e13044ba10ea613da83f90f45e9..a83a96f93f421198d40d5cf5bb756536d72f2160 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
 
 * Kernels of the same class are now eligible to be run on different devices
 * Added method to set execution mode without any fallback.
+* Added opencl device method for name
 
 ## 1.1.2
 
diff --git a/src/main/java/com/aparapi/device/OpenCLDevice.java b/src/main/java/com/aparapi/device/OpenCLDevice.java
index d3983a859e572b88c592c541ad060dcd5dbd277b..fbd86e40db86903137b3cbf40ea30ca2c11568a5 100644
--- a/src/main/java/com/aparapi/device/OpenCLDevice.java
+++ b/src/main/java/com/aparapi/device/OpenCLDevice.java
@@ -15,16 +15,35 @@
  */
 package com.aparapi.device;
 
-import com.aparapi.*;
-import com.aparapi.internal.opencl.*;
-import com.aparapi.opencl.*;
-import com.aparapi.opencl.OpenCL.*;
 import com.aparapi.opencl.OpenCL.Kernel;
 
-import java.io.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.util.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.aparapi.Range;
+import com.aparapi.internal.opencl.OpenCLArgDescriptor;
+import com.aparapi.internal.opencl.OpenCLKernel;
+import com.aparapi.internal.opencl.OpenCLPlatform;
+import com.aparapi.internal.opencl.OpenCLProgram;
+import com.aparapi.opencl.OpenCL;
+import com.aparapi.opencl.OpenCL.Arg;
+import com.aparapi.opencl.OpenCL.Constant;
+import com.aparapi.opencl.OpenCL.GlobalReadOnly;
+import com.aparapi.opencl.OpenCL.GlobalReadWrite;
+import com.aparapi.opencl.OpenCL.GlobalWriteOnly;
+import com.aparapi.opencl.OpenCL.Local;
+import com.aparapi.opencl.OpenCL.Resource;
+import com.aparapi.opencl.OpenCL.Source;
 
 public class OpenCLDevice extends Device{
 
@@ -42,9 +61,11 @@ public class OpenCLDevice extends Device{
 
    private String shortDescription = null;
 
+   private String name = null;
+
    /**
     * Minimal constructor
-    * 
+    *
     * @param _platform
     * @param _deviceId
     * @param _type
@@ -95,7 +116,16 @@ public class OpenCLDevice extends Device{
       maxWorkItemSize[_dim] = _value;
    }
 
-   public long getDeviceId() {
+   public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  @Override
+  public long getDeviceId() {
       return (deviceId);
    }
 
@@ -192,7 +222,7 @@ public class OpenCLDevice extends Device{
             } else if (method.getName().equals("end")) {
                System.out.println("end not implemented");
             }  else if (method.getName().equals("getProfileInfo")){
-               proxy = (Object)program.getProfileInfo();
+               proxy = program.getProfileInfo();
             }
          }
          return proxy;