diff --git a/src/Vector/vector_dist_kernel.hpp b/src/Vector/vector_dist_kernel.hpp
index cc42a53e3632d9181c5d14df1b9288bc8aee64dd..91276dfdb6b6df3a1c542f278ec97b3451434888 100644
--- a/src/Vector/vector_dist_kernel.hpp
+++ b/src/Vector/vector_dist_kernel.hpp
@@ -167,6 +167,62 @@ public:
 		return v_pos.template get<0>(vec_key.getKey());
 	}
 
+	/*! \brief Get the position of an element
+	 *
+	 * see the vector_dist iterator usage to get an element key
+	 *
+	 * \param vec_key element
+	 *
+	 * \return the position of the element in space
+	 *
+	 */
+	__device__ __host__ inline auto getPosOrig(int vec_key) -> decltype(v_pos.template get<0>(vec_key))
+	{
+		return v_pos.template get<0>(vec_key);
+	}
+
+	/*! \brief Get the position of an element
+	 *
+	 * see the vector_dist iterator usage to get an element key
+	 *
+	 * \param vec_key element
+	 *
+	 * \return the position of the element in space
+	 *
+	 */
+	__device__ __host__ inline auto getPosOrig(const vect_dist_key_dx & vec_key) -> decltype(v_pos.template get<0>(vec_key.getKey()))
+	{
+		return v_pos.template get<0>(vec_key.getKey());
+	}
+
+	/*! \brief Get the position of an element
+	 *
+	 * see the vector_dist iterator usage to get an element key
+	 *
+	 * \param vec_key element
+	 *
+	 * \return the position of the element in space
+	 *
+	 */
+	__device__ __host__ inline auto getPosOrig(int vec_key) const -> decltype(v_pos.template get<0>(vec_key))
+	{
+		return v_pos.template get<0>(vec_key);
+	}
+
+	/*! \brief Get the position of an element
+	 *
+	 * see the vector_dist iterator usage to get an element key
+	 *
+	 * \param vec_key element
+	 *
+	 * \return the position of the element in space
+	 *
+	 */
+	__device__ __host__ inline auto getPosOrig(const vect_dist_key_dx & vec_key) const -> decltype(v_pos.template get<0>(vec_key.getKey()))
+	{
+		return v_pos.template get<0>(vec_key.getKey());
+	}
+
 	/*! \brief Get the property of an element
 	 *
 	 * see the vector_dist iterator usage to get an element key
diff --git a/src/Vector/vector_dist_subset.hpp b/src/Vector/vector_dist_subset.hpp
index 0d25ea2c91558192fffd6824c447f6dc1cd3e3d6..0e5a62d8be8c1b56061585735642898af654974e 100644
--- a/src/Vector/vector_dist_subset.hpp
+++ b/src/Vector/vector_dist_subset.hpp
@@ -269,6 +269,27 @@ public:
         return vd.getPos(vect_dist_key_dx(pid.template get<0>(vec_key.getKey())));
     }
 
+    /*! \brief Move the memory from the device to host memory
+     *
+     * \tparam property to move use POS_PROP for position property
+     *
+     */
+    template<unsigned int ... prp>
+    inline void hostToDeviceProp()
+    {
+        vd.template hostToDeviceProp<prp ...>();
+    }
+
+    /*! \brief Move the memory from the device to host memory
+     *
+     * \tparam property to move use POS_PROP for position property
+     *
+     */
+    inline void hostToDevicePos()
+    {
+        vd.template hostToDevicePos<0>();
+    }
+
     /*! \brief Get the position of an element
      *
      * see the vector_dist iterator usage to get an element key