diff --git a/com.oracle.truffle.r.native/fficall/src/jni/Rinternals.c b/com.oracle.truffle.r.native/fficall/src/jni/Rinternals.c
index 4de365306695b4327d7deab5d35287942063148e..b2fe0c289a40aea1203244bf285887efcbc14264 100644
--- a/com.oracle.truffle.r.native/fficall/src/jni/Rinternals.c
+++ b/com.oracle.truffle.r.native/fficall/src/jni/Rinternals.c
@@ -81,8 +81,9 @@ static jmethodID Rf_PairToVectorListMethodID;
 static jmethodID gnuRCodeForObjectMethodID;
 static jmethodID NAMED_MethodID;
 static jmethodID TYPEOF_MethodID;
+static jmethodID OBJECT_MethodID;
 static jmethodID DUPLICATE_ATTRIB_MethodID;
-static jmethodID iS4ObjectMethodID;
+static jmethodID isS4ObjectMethodID;
 static jmethodID logObject_MethodID;
 
 static jclass RExternalPtrClass;
@@ -157,8 +158,9 @@ void init_internals(JNIEnv *env) {
 	Rf_PairToVectorListMethodID = checkGetMethodID(env, CallRFFIHelperClass, "Rf_PairToVectorList", "(Ljava/lang/Object;)Ljava/lang/Object;", 1);
 	NAMED_MethodID = checkGetMethodID(env, CallRFFIHelperClass, "NAMED", "(Ljava/lang/Object;)I", 1);
 	TYPEOF_MethodID = checkGetMethodID(env, CallRFFIHelperClass, "TYPEOF", "(Ljava/lang/Object;)I", 1);
+	OBJECT_MethodID = checkGetMethodID(env, CallRFFIHelperClass, "OBJECT", "(Ljava/lang/Object;)I", 1);
 	DUPLICATE_ATTRIB_MethodID = checkGetMethodID(env, CallRFFIHelperClass, "DUPLICATE_ATTRIB", "(Ljava/lang/Object;Ljava/lang/Object;)V", 1);
-	iS4ObjectMethodID = checkGetMethodID(env, CallRFFIHelperClass, "isS4Object", "(Ljava/lang/Object;)I", 1);
+	isS4ObjectMethodID = checkGetMethodID(env, CallRFFIHelperClass, "isS4Object", "(Ljava/lang/Object;)I", 1);
 	logObject_MethodID = checkGetMethodID(env, CallRFFIHelperClass, "logObject", "(Ljava/lang/Object;)V", 1);
 
 	RExternalPtrClass = checkFindClass(env, "com/oracle/truffle/r/runtime/data/RExternalPtr");
@@ -1171,8 +1173,8 @@ SEXP ATTRIB(SEXP x){
 }
 
 int OBJECT(SEXP x){
-    unimplemented("OBJECT");
-    return 0;
+	JNIEnv *env = getEnv();
+	return 	(*env)->CallStaticIntMethod(env, CallRFFIHelperClass, OBJECT_MethodID, x);
 }
 
 int MARK(SEXP x){
@@ -1251,7 +1253,7 @@ R_len_t R_BadLongVector(SEXP x, const char *y, int z) {
 
 int IS_S4_OBJECT(SEXP x) {
 	JNIEnv *env = getEnv();
-	return 	(*env)->CallStaticIntMethod(env, CallRFFIHelperClass, iS4ObjectMethodID, x);
+	return 	(*env)->CallStaticIntMethod(env, CallRFFIHelperClass, isS4ObjectMethodID, x);
 }
 
 void SET_S4_OBJECT(SEXP x) {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
index 70123f839c15e0b154621bf3daeafa56d7accca9..19c7b12cbb295cc31af46f47477e359350c09acd 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/binary/BinaryBooleanNode.java
@@ -52,7 +52,6 @@ import com.oracle.truffle.r.runtime.ops.BooleanOperationFactory;
 /**
  * Represents a binary or unary operation from the 'logical' subset of Ops R group. The concrete
  * operation is implemented by factory object given as a constructor parameter, e.g.
- * {@link com.oracle.truffle.r.runtime.ops.BinaryCompare.Equal} or
  * {@link com.oracle.truffle.r.runtime.ops.BinaryLogic.And}.
  */
 public abstract class BinaryBooleanNode extends BinaryNodeBase {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/helpers/RFactorNodes.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/helpers/RFactorNodes.java
index b05d17ea20f260ae2c35def3d0212bf3bb216958..3573d38864dd81f79000f0226f7e2f13c7de6fc6 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/helpers/RFactorNodes.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/helpers/RFactorNodes.java
@@ -40,7 +40,7 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractLogicalVector;
 
 /**
  * Contains helper nodes related to factors, special R class of {@link RAbstractIntVector}. Note:
- * there is also {@see IsFactorNode}, which implements a built-in, for checking factor class.
+ * there is also {@code IsFactorNode}, which implements a built-in, for checking factor class.
  */
 public final class RFactorNodes {
 
diff --git a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
index 72defec846a50ae449017d572d95353bb1494f9c..a3fce16a371db2d0b0cd9e14e07377b988827154 100644
--- a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
+++ b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jnr/CallRFFIHelper.java
@@ -54,9 +54,11 @@ import com.oracle.truffle.r.runtime.data.RPromise;
 import com.oracle.truffle.r.runtime.data.RRaw;
 import com.oracle.truffle.r.runtime.data.RRawVector;
 import com.oracle.truffle.r.runtime.data.RS4Object;
+import com.oracle.truffle.r.runtime.data.RScalar;
 import com.oracle.truffle.r.runtime.data.RShareable;
 import com.oracle.truffle.r.runtime.data.RStringVector;
 import com.oracle.truffle.r.runtime.data.RSymbol;
+import com.oracle.truffle.r.runtime.data.RTypedValue;
 import com.oracle.truffle.r.runtime.data.RUnboundValue;
 import com.oracle.truffle.r.runtime.data.model.RAbstractContainer;
 import com.oracle.truffle.r.runtime.data.model.RAbstractListVector;
@@ -538,6 +540,15 @@ public class CallRFFIHelper {
         }
     }
 
+    public static int OBJECT(Object x) {
+        if (x instanceof RTypedValue && !(x instanceof RScalar)) {
+            return ((RTypedValue) x).getIsObject();
+        } else {
+            // TODO: should we throw an error or simply return false for scalars
+            throw RInternalError.unimplemented();
+        }
+    }
+
     public static Object Rf_duplicate(Object x) {
         guaranteeInstanceOf(x, RAbstractVector.class);
         return ((RAbstractVector) x).copy();
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSerialize.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSerialize.java
index a45378ddf386a42d0d0b7b6b21a4e2a5de927450..e8ea46f80d38dd1ee8b90445017530ade08304a8 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSerialize.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSerialize.java
@@ -368,6 +368,7 @@ public class RSerialize {
 
         protected Object readItem(int flags) throws IOException {
             int levs = flags >>> 12;
+            int isObj = (flags & Flags.IS_OBJECT_BIT_MASK) == 0 ? 0 : 1;
             Object result = null;
             SEXPTYPE type = SEXPTYPE.mapInt(Flags.ptype(flags));
 
@@ -604,6 +605,7 @@ public class RSerialize {
 
                     if (!(result instanceof RScalar)) {
                         ((RTypedValue) result).setGPBits(levs);
+                        ((RTypedValue) result).setIsObject(isObj);
                     } else {
                         // for now we only record S4-ness here, and in this case it shoud be 0
                         assert (levs == 0);
@@ -774,7 +776,6 @@ public class RSerialize {
                 default:
                     throw RInternalError.unimplemented();
             }
-            // TODO SETLEVELS
             if (type == SEXPTYPE.CHARSXP) {
                 /*
                  * With the CHARSXP cache maintained through the ATTRIB field that field has already
@@ -786,6 +787,10 @@ public class RSerialize {
                     readItem();
                 }
             } else {
+                // TODO: CHARSXP currently cannot be an object - this is not the case in GNU R
+                if (!(result instanceof RScalar)) {
+                    ((RTypedValue) result).setIsObject(isObj);
+                }
                 if (Flags.hasAttr(flags)) {
                     Object attr = readItem();
                     result = setAttributes(result, attr);
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RBaseObject.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RBaseObject.java
index 7d28b31916c625660275257f563f621cd9dbe895..d292a67ba3d34572f0fb3ff69aed312c674de3f4 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RBaseObject.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RBaseObject.java
@@ -24,13 +24,13 @@ package com.oracle.truffle.r.runtime.data;
 
 abstract class RBaseObject {
 
-    protected int gpbits;
+    protected int typedValueInfo;
 
-    public int getGPBits() {
-        return gpbits;
+    public int getTypedValueInfo() {
+        return typedValueInfo;
     }
 
-    public void setGPBits(int value) {
-        gpbits = value;
+    public void setTypedValueInfo(int value) {
+        typedValueInfo = value;
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java
index a365680d20d128c48ab93657ad3970982033a771..5de2ec03861db52c9595ae8527a25792dce353f3 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java
@@ -233,12 +233,12 @@ public class RExpression implements RShareable, RAbstractContainer {
     }
 
     @Override
-    public int getGPBits() {
-        return data.getGPBits();
+    public int getTypedValueInfo() {
+        return data.getTypedValueInfo();
     }
 
     @Override
-    public void setGPBits(int value) {
-        data.setGPBits(value);
+    public void setTypedValueInfo(int value) {
+        data.setTypedValueInfo(value);
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RFunction.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RFunction.java
index c377084e34bb23d370ff602e1c4a7d319ae47d8f..1776974d65fbed194610457acfc2a496d3990ce4 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RFunction.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RFunction.java
@@ -144,7 +144,7 @@ public final class RFunction extends RSharingAttributeStorage implements RTypedV
             }
             newFunction.initAttributes(newAttributes);
         }
-        newFunction.gpbits = gpbits;
+        newFunction.typedValueInfo = typedValueInfo;
         return newFunction;
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RGPBits.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RGPBits.java
deleted file mode 100644
index 88f02cb4a5c9014eb60acc80adb054f898381c60..0000000000000000000000000000000000000000
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RGPBits.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.oracle.truffle.r.runtime.data;
-
-/**
- * This corresponds to the "general purpose" bits in a GnuR SEXP. It is now rarely used within GnuR
- * and many of those uses do not apply to FastR; however, condition handling is one important use.
- * We define it as an interface so that only specific types need implement it, {@link RList} in the
- * case of condition handling.
- *
- */
-public interface RGPBits {
-    int getGPBits();
-
-    void setGPBits(int value);
-}
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java
index a053031e4e044207e4ceed3c5c538314a280e247..1ce58cc151dc56f91c4f7372878586fd32aa5282 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java
@@ -198,7 +198,7 @@ public class RLanguage extends RSharingAttributeStorage implements RAbstractCont
         if (this.attributes != null) {
             l.attributes = attributes.copy();
         }
-        l.gpbits = gpbits;
+        l.typedValueInfo = typedValueInfo;
         return l;
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
index b4b18d7de41321683bcec333e2a853a379beb582..dd197d84b085c22e433267f05d54fc2308afd41a 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
@@ -29,7 +29,7 @@ import com.oracle.truffle.api.interop.TruffleObject;
 import com.oracle.truffle.r.runtime.RType;
 import com.oracle.truffle.r.runtime.context.RContext;
 
-public final class RList extends RListBase implements RGPBits, TruffleObject {
+public final class RList extends RListBase implements TruffleObject {
 
     private static final RStringVector implicitClassHeader = RDataFactory.createStringVectorFromScalar(RType.List.getClazz());
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPromise.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPromise.java
index e956c0faec14e3357cfe3b4e692b7e480a48ac40..dce983013195da94e1266aa8495c123baa96a6aa 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPromise.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPromise.java
@@ -487,12 +487,12 @@ public class RPromise implements RTypedValue {
     }
 
     @Override
-    public int getGPBits() {
+    public int getTypedValueInfo() {
         return 0;
     }
 
     @Override
-    public void setGPBits(int value) {
+    public void setTypedValueInfo(int value) {
         // This gets called from RSerialize, just ignore (for now)
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RS4Object.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RS4Object.java
index 017c036641292185cbf88247444e60e0a2c8a68b..4c2c87f3561321c799c0777fb6164f478371988b 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RS4Object.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RS4Object.java
@@ -56,7 +56,7 @@ public class RS4Object extends RSharingAttributeStorage {
                 newAttributes.put(attr.getName(), attr.getValue());
             }
         }
-        resultS4.gpbits = gpbits;
+        resultS4.typedValueInfo = typedValueInfo;
         return resultS4;
     }
 }
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalar.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalar.java
index 402b8b2d417d00093f0a41b709fb69b97f300065..332ab5cf0270a00698282e6decd09e3889a79cfb 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalar.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalar.java
@@ -29,12 +29,12 @@ import com.oracle.truffle.r.runtime.RInternalError;
 public abstract class RScalar implements RTypedValue {
 
     @Override
-    public int getGPBits() {
+    public int getTypedValueInfo() {
         throw RInternalError.shouldNotReachHere();
     }
 
     @Override
-    public void setGPBits(int value) {
+    public void setTypedValueInfo(int value) {
         throw RInternalError.shouldNotReachHere();
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java
index bac78060ac764a9f604c3357e0031fedff2729f5..c109a3a19cf98a19fd391c50167d0d883a7e1837 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java
@@ -189,12 +189,12 @@ public abstract class RSequence implements RAbstractVector {
     }
 
     @Override
-    public int getGPBits() {
+    public int getTypedValueInfo() {
         return 0;
     }
 
     @Override
-    public void setGPBits(int value) {
+    public void setTypedValueInfo(int value) {
         throw RInternalError.shouldNotReachHere();
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypedValue.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypedValue.java
index 91aa4dac85d953b1f097f8b7360d9c5a44dea08e..234a6878594186acf6d35192747b1cf2747e9360 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypedValue.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypedValue.java
@@ -22,13 +22,34 @@ import com.oracle.truffle.r.runtime.RType;
 public interface RTypedValue {
 
     // mask values are the same as in GNU R
+    // as is the layout of data (but it's never exposed so it does not matter for correctness)
     int S4_MASK = 1 << 4;
+    int IS_OBJECT_MASK_SHIFT = 5;
+    int IS_OBJECT_BITS_MASK = 1 << IS_OBJECT_MASK_SHIFT;
+    int GP_BITS_MASK_SHIFT = 8;
+    int GP_BITS_MASK = 0xFFFF << GP_BITS_MASK_SHIFT;
 
     RType getRType();
 
-    int getGPBits();
+    int getTypedValueInfo();
 
-    void setGPBits(int value);
+    void setTypedValueInfo(int value);
+
+    default int getIsObject() {
+        return (getTypedValueInfo() & IS_OBJECT_BITS_MASK) >>> IS_OBJECT_MASK_SHIFT;
+    }
+
+    default void setIsObject(int gpbits) {
+        setTypedValueInfo((getTypedValueInfo() & ~IS_OBJECT_BITS_MASK) | (gpbits << IS_OBJECT_MASK_SHIFT));
+    }
+
+    default int getGPBits() {
+        return (getTypedValueInfo() & GP_BITS_MASK) >>> GP_BITS_MASK_SHIFT;
+    }
+
+    default void setGPBits(int gpbits) {
+        setTypedValueInfo((getTypedValueInfo() & ~GP_BITS_MASK) | (gpbits << GP_BITS_MASK_SHIFT));
+    }
 
     default boolean isS4() {
         return (getGPBits() & S4_MASK) == S4_MASK;
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java
index 9292adf55f7794dcdcb8e2696eff364b578e5890..a1197ae6546a5f626d0204d437fa15dbbccb7c78 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java
@@ -554,7 +554,7 @@ public abstract class RVector extends RSharingAttributeStorage implements RShare
         RVector result = internalCopy();
         setAttributes(result);
         incCopyCount();
-        result.gpbits = gpbits;
+        result.typedValueInfo = typedValueInfo;
         return result;
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java
index 21952499cc71457ff6317756bc8985a0387ee086..981ba1bc3ee687e7092a83f4caa180dd8c223ec3 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java
@@ -184,13 +184,13 @@ abstract class RToVectorClosure implements RAbstractVector {
     }
 
     @Override
-    public int getGPBits() {
-        return vector.getGPBits();
+    public int getTypedValueInfo() {
+        return vector.getTypedValueInfo();
     }
 
     @Override
-    public void setGPBits(int value) {
-        vector.setGPBits(value);
+    public void setTypedValueInfo(int value) {
+        vector.setTypedValueInfo(value);
     }
 
     @Override