public Entity(String name) {
		if (name.length()>0){
		try {
			vertShader = createShader("shaders/" + name + ".vert",
					ARBVertexShader.GL_VERTEX_SHADER_ARB);
			fragShader = createShader("shaders/" + name + ".frag",
					ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);
		} catch (Exception e) {
			e.printStackTrace();
			return;
		} finally {
			if (vertShader == 0 || fragShader == 0) {
				return;
			}
		}
		program = ARBShaderObjects.glCreateProgramObjectARB();
		if (program == 0)
			return;
		ARBShaderObjects.glAttachObjectARB(program, vertShader);
		ARBShaderObjects.glAttachObjectARB(program, fragShader);
		ARBShaderObjects.glLinkProgramARB(program);
		if (ARBShaderObjects.glGetObjectParameteriARB(program,
				ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
			System.err.println(getLogInfo(program));
			return;
		}
		ARBShaderObjects.glValidateProgramARB(program);
		if (ARBShaderObjects.glGetObjectParameteriARB(program,
				ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
			System.err.println(getLogInfo(program));
			return;
		}
		useShader = true;
		}
	}