diff --git a/include/capsule/Heap.h b/include/capsule/Heap.h
index 8618d0eebd42263f6e0aa3bec21026178f078a3c..d6d95fc5a336320588fffd938b5bb80cc118e6f1 100644
--- a/include/capsule/Heap.h
+++ b/include/capsule/Heap.h
@@ -44,34 +44,6 @@ public:
     void ResizeData( const std::size_t size );
     void ResizeMetadata( const std::size_t size );
 
-    void WriteData( const std::size_t first, const char* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned char* data, const std::size_t size );
-    void WriteData( const std::size_t first, const short* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned short* data, const std::size_t size );
-    void WriteData( const std::size_t first, const int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned long long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const float* data, const std::size_t size );
-    void WriteData( const std::size_t first, const double* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long double* data, const std::size_t size );
-
-    void WriteMetadata( const std::size_t first, const char* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned char* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const short* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned short* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned long long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const float* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const double* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long double* metadata, const std::size_t size );
-
 
 private:
 
diff --git a/include/capsule/ShmSystemV.h b/include/capsule/ShmSystemV.h
index 72b7ee85454c8b3905471d720299f2ecdc28a750..575875080da45b79482cac5e7edcb96df505b985 100644
--- a/include/capsule/ShmSystemV.h
+++ b/include/capsule/ShmSystemV.h
@@ -41,34 +41,6 @@ public:
     std::size_t GetDataSize( ) const; ///< get current data buffer size
     std::size_t GetMetadataSize( ) const; ///< get current metadata buffer size
 
-    void WriteData( const std::size_t first, const char* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned char* data, const std::size_t size );
-    void WriteData( const std::size_t first, const short* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned short* data, const std::size_t size );
-    void WriteData( const std::size_t first, const int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const unsigned long long int* data, const std::size_t size );
-    void WriteData( const std::size_t first, const float* data, const std::size_t size );
-    void WriteData( const std::size_t first, const double* data, const std::size_t size );
-    void WriteData( const std::size_t first, const long double* data, const std::size_t size );
-
-    void WriteMetadata( const std::size_t first, const char* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned char* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const short* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned short* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const unsigned long long int* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const float* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const double* metadata, const std::size_t size );
-    void WriteMetadata( const std::size_t first, const long double* metadata, const std::size_t size );
-
 
 private:
 
diff --git a/include/core/Capsule.h b/include/core/Capsule.h
index 4bacc4f60e7a7357f493aa206a39cfe2da404db0..ebc36d30e9ffb2515ca825de74de74303d3090f7 100644
--- a/include/core/Capsule.h
+++ b/include/core/Capsule.h
@@ -48,40 +48,6 @@ public:
     virtual void ResizeData( const std::size_t size ); ///< resize data buffer
     virtual void ResizeMetadata( const std::size_t size ); ///< resize metadata buffer
 
-    /**
-     * Write functions to data buffer
-     * @param first position for writing in data buffer
-     * @param data incoming data variable
-     * @param size number of elements
-     */
-    virtual void WriteData( const std::size_t first, const char* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const unsigned char* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const short* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const unsigned short* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const unsigned int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const long int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const unsigned long int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const long long int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const unsigned long long int* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const float* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const double* data, const std::size_t size ) = 0;
-    virtual void WriteData( const std::size_t first, const long double* data, const std::size_t size ) = 0;
-
-    virtual void WriteMetadata( const std::size_t first, const char* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const unsigned char* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const short* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const unsigned short* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const unsigned int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const long int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const unsigned long int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const long long int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const unsigned long long int* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const float* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const double* metadata, const std::size_t size ) = 0;
-    virtual void WriteMetadata( const std::size_t first, const long double* metadata, const std::size_t size ) = 0;
-
 
 protected:
 
diff --git a/src/capsule/Heap.cpp b/src/capsule/Heap.cpp
index d9ebaefaf3fdae69cb5bf9b989664c52fb50ee64..10c5016fbe83a64a429cbd911d823792a0d06860 100644
--- a/src/capsule/Heap.cpp
+++ b/src/capsule/Heap.cpp
@@ -28,13 +28,13 @@ Heap::~Heap( )
 
 char* Heap::GetData( )
 {
-    return &m_Data.front();
+    return m_Data.data( );
 }
 
 
 char* Heap::GetMetadata( )
 {
-    return &m_Metadata.front();
+    return m_Metadata.data( );
 }
 
 
@@ -46,7 +46,7 @@ std::size_t Heap::GetDataSize( ) const
 
 std::size_t Heap::GetMetadataSize( ) const
 {
-    return m_Metadata.size();
+    return m_Metadata.size( );
 }
 
 
@@ -61,142 +61,6 @@ void Heap::ResizeMetadata( const std::size_t size )
     m_Metadata.resize( size );
 }
 
-//WriteData functions
-void Heap::WriteData( const std::size_t first, const char* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( char ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const unsigned char* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned char ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const short* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( short ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const unsigned short* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned short ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const unsigned int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const unsigned long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned long int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const long long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long long int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const unsigned long long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned long long int ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const float* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( float ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const double* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( double ), m_Cores );
-}
-
-void Heap::WriteData( const std::size_t first, const long double* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long double ), m_Cores );
-}
-
-//WriteMetadata functions
-void Heap::WriteMetadata( const std::size_t first, const char* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( char ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const unsigned char* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned char ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const short* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( short ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const unsigned short* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned short ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const unsigned int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const unsigned long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned long int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const long long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long long int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const unsigned long long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned long long int ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const float* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( float ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const double* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( double ), m_Cores );
-}
-
-void Heap::WriteMetadata( const std::size_t first, const long double* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long double ), m_Cores );
-}
-
-
-
-
-
 
 //void Heap::Write( const Variable<double>& variable,
 //                  const std::vector<unsigned long long int>& localDimensions,
@@ -266,10 +130,4 @@ void Heap::WriteMetadata( const std::size_t first, const long double* metadata,
 
 
 
-
-
-
-
-
-
 }  //end namespace
diff --git a/src/capsule/ShmSystemV.cpp b/src/capsule/ShmSystemV.cpp
index 87d515173e2b52085155a4806341162929d6b6cc..013149ce2fa2f3e766e475570b294c86f9fa705c 100644
--- a/src/capsule/ShmSystemV.cpp
+++ b/src/capsule/ShmSystemV.cpp
@@ -69,138 +69,6 @@ std::size_t ShmSystemV::GetMetadataSize( ) const
     return m_MetadataSize;
 }
 
-//WriteData functions
-void ShmSystemV::WriteData( const std::size_t first, const char* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( char ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const unsigned char* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned char ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const short* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( short ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const unsigned short* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned short ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const unsigned int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const unsigned long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned long int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const long long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long long int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const unsigned long long int* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( unsigned long long int ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const float* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( float ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const double* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( double ), m_Cores );
-}
-
-void ShmSystemV::WriteData( const std::size_t first, const long double* data, const std::size_t size )
-{
-    MemcpyThreads( &m_Data[first], data, size * sizeof( long double ), m_Cores );
-}
-
-//WriteMetadata functions
-void ShmSystemV::WriteMetadata( const std::size_t first, const char* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( char ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const unsigned char* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned char ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const short* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( short ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const unsigned short* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned short ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const unsigned int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const unsigned long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned long int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const long long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long long int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const unsigned long long int* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( unsigned long long int ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const float* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( float ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const double* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( double ), m_Cores );
-}
-
-void ShmSystemV::WriteMetadata( const std::size_t first, const long double* metadata, const std::size_t size )
-{
-    MemcpyThreads( &m_Metadata[first], metadata, size * sizeof( long double ), m_Cores );
-}
-
 
 void ShmSystemV::CheckShm( ) const
 {