diff --git a/include/MemoryProcessing.h b/include/MemoryProcessing.h
index 5d20eeaf14668d665b6b5e47dd6657a8bf5f16d0..4721807e33b5f54e81a23ab12b21466eb2ca3c53 100644
--- a/include/MemoryProcessing.h
+++ b/include/MemoryProcessing.h
@@ -2,11 +2,14 @@
 #include "TemplateParameters.h"
 #include <cstddef>
 
-template <MemType memtype>
-bool realloc(void *&array, size_t &allocated_size, const size_t new_size);
+namespace memproc
+{
+    template <MemType memtype>
+    bool realloc(void *&array, size_t &allocated_size, const size_t new_size);
 
-template<MemType memtype>
-bool dealloc(void *&array, size_t &allocated_size);
+    template<MemType memtype>
+    bool dealloc(void *&array, size_t &allocated_size);
 
-template <MemType dst_memtype, MemType src_memtype>
-bool memcopy(void *dst, const void* src, const size_t copy_elem_size);
+    template <MemType dst_memtype, MemType src_memtype>
+    bool memcopy(void *dst, const void* src, const size_t copy_elem_size);
+}
diff --git a/src/MemoryProcessing.cpp b/src/MemoryProcessing.cpp
index 1ff1da9f07397c05e155f8350d3d38fd80c3ac08..4c2d2f6b0c70595a61dc3e68587d6fd18ed086b1 100644
--- a/src/MemoryProcessing.cpp
+++ b/src/MemoryProcessing.cpp
@@ -3,7 +3,7 @@
 #include <cstring>
 
 template<>
-bool dealloc<MemType::CPU>(void *&array, size_t &allocated_size)
+bool memproc::dealloc<MemType::CPU>(void *&array, size_t &allocated_size)
 {
     if(allocated_size > 0)
     {
@@ -15,7 +15,7 @@ bool dealloc<MemType::CPU>(void *&array, size_t &allocated_size)
 }
 
 template <>
-bool realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t new_size)
+bool memproc::realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t new_size)
 {
     if(new_size > allocated_size)
     {
@@ -29,7 +29,7 @@ bool realloc<MemType::CPU>(void *&array, size_t &allocated_size, const size_t ne
 }
 
 template <>
-bool memcopy<MemType::CPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size)
+bool memproc::memcopy<MemType::CPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size)
 {
     memcpy(dst, src, copy_elem_size);
 
diff --git a/src/MemoryProcessing.cu b/src/MemoryProcessing.cu
index e16e6455e4befc5188ebfcc347b9ecb835c7a281..205a9fa61ab5e9ae9d8c077c0c98e125d5c78872 100644
--- a/src/MemoryProcessing.cu
+++ b/src/MemoryProcessing.cu
@@ -3,7 +3,7 @@
 #include <cuda_runtime_api.h>
 
 template<>
-bool dealloc<MemType::GPU>(void *&array, size_t &allocated_size)
+bool memproc::dealloc<MemType::GPU>(void *&array, size_t &allocated_size)
 {
     if(allocated_size > 0)
     {
@@ -15,7 +15,7 @@ bool dealloc<MemType::GPU>(void *&array, size_t &allocated_size)
 }
 
 template <>
-bool realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t new_size)
+bool memproc::realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t new_size)
 {
     if(new_size > allocated_size)
     {
@@ -29,7 +29,7 @@ bool realloc<MemType::GPU>(void *&array, size_t &allocated_size, const size_t ne
 }
 
 template <>
-bool memcopy<MemType::GPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size)
+bool memproc::memcopy<MemType::GPU, MemType::CPU>(void *dst, const void* src, const size_t copy_elem_size)
 {
     cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyHostToDevice);
 
@@ -37,14 +37,14 @@ bool memcopy<MemType::GPU, MemType::CPU>(void *dst, const void* src, const size_
 }
 
 template <>
-bool memcopy<MemType::CPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size)
+bool memproc::memcopy<MemType::CPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size)
 {
     cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToHost);
     return true;
 }
 
 template <>
-bool memcopy<MemType::GPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size)
+bool memproc::memcopy<MemType::GPU, MemType::GPU>(void *dst, const void* src, const size_t copy_elem_size)
 {
     cudaMemcpy ( dst, src, copy_elem_size, cudaMemcpyDeviceToDevice);
     return true;