diff --git a/src/algebra/TinyMatrix.hpp b/src/algebra/TinyMatrix.hpp
index a4499baa4677f09bc7edd3c1e3c59d41c9b3557d..0635f1b32b12d29bbbaa85273d6c49d92aba12ca 100644
--- a/src/algebra/TinyMatrix.hpp
+++ b/src/algebra/TinyMatrix.hpp
@@ -11,7 +11,7 @@
 #include <iostream>
 
 template <size_t N, typename T = double>
-class TinyMatrix
+class [[nodiscard]] TinyMatrix
 {
  public:
   using data_type = T;
@@ -21,15 +21,13 @@ class TinyMatrix
   static_assert((N > 0), "TinyMatrix size must be strictly positive");
 
   PUGS_FORCEINLINE
-  constexpr size_t
-  _index(size_t i, size_t j) const noexcept   // LCOV_EXCL_LINE (due to forced inline)
+  constexpr size_t _index(size_t i, size_t j) const noexcept   // LCOV_EXCL_LINE (due to forced inline)
   {
     return i * N + j;
   }
 
   template <typename... Args>
-  PUGS_FORCEINLINE constexpr void
-  _unpackVariadicInput(const T& t, Args&&... args) noexcept
+  PUGS_FORCEINLINE constexpr void _unpackVariadicInput(const T& t, Args&&... args) noexcept
   {
     m_values[N * N - 1 - sizeof...(args)] = t;
     if constexpr (sizeof...(args) > 0) {
@@ -39,8 +37,7 @@ class TinyMatrix
 
  public:
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator-() const
+  constexpr TinyMatrix operator-() const
   {
     TinyMatrix opposed;
     for (size_t i = 0; i < N * N; ++i) {
@@ -50,23 +47,20 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr friend TinyMatrix
-  operator*(const T& t, const TinyMatrix& A)
+  constexpr friend TinyMatrix operator*(const T& t, const TinyMatrix& A)
   {
     TinyMatrix B = A;
     return B *= t;
   }
 
   PUGS_INLINE
-  constexpr friend TinyMatrix
-  operator*(const T& t, TinyMatrix&& A)
+  constexpr friend TinyMatrix operator*(const T& t, TinyMatrix&& A)
   {
     return std::move(A *= t);
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix&
-  operator*=(const T& t)
+  constexpr TinyMatrix& operator*=(const T& t)
   {
     for (size_t i = 0; i < N * N; ++i) {
       m_values[i] *= t;
@@ -75,8 +69,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator*(const TinyMatrix& B) const
+  constexpr TinyMatrix operator*(const TinyMatrix& B) const
   {
     const TinyMatrix& A = *this;
     TinyMatrix AB;
@@ -93,8 +86,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyVector<N, T>
-  operator*(const TinyVector<N, T>& x) const
+  constexpr TinyVector<N, T> operator*(const TinyVector<N, T>& x) const
   {
     const TinyMatrix& A = *this;
     TinyVector<N, T> Ax;
@@ -109,8 +101,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr friend std::ostream&
-  operator<<(std::ostream& os, const TinyMatrix& A)
+  constexpr friend std::ostream& operator<<(std::ostream& os, const TinyMatrix& A)
   {
     if constexpr (N == 1) {
       os << A(0, 0);
@@ -129,8 +120,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr bool
-  operator==(const TinyMatrix& A) const
+  constexpr bool operator==(const TinyMatrix& A) const
   {
     for (size_t i = 0; i < N * N; ++i) {
       if (m_values[i] != A.m_values[i])
@@ -140,15 +130,13 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr bool
-  operator!=(const TinyMatrix& A) const
+  constexpr bool operator!=(const TinyMatrix& A) const
   {
     return not this->operator==(A);
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator+(const TinyMatrix& A) const
+  constexpr TinyMatrix operator+(const TinyMatrix& A) const
   {
     TinyMatrix sum;
     for (size_t i = 0; i < N * N; ++i) {
@@ -158,8 +146,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator+(TinyMatrix&& A) const
+  constexpr TinyMatrix operator+(TinyMatrix&& A) const
   {
     for (size_t i = 0; i < N * N; ++i) {
       A.m_values[i] += m_values[i];
@@ -168,8 +155,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator-(const TinyMatrix& A) const
+  constexpr TinyMatrix operator-(const TinyMatrix& A) const
   {
     TinyMatrix difference;
     for (size_t i = 0; i < N * N; ++i) {
@@ -179,8 +165,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix
-  operator-(TinyMatrix&& A) const
+  constexpr TinyMatrix operator-(TinyMatrix&& A) const
   {
     for (size_t i = 0; i < N * N; ++i) {
       A.m_values[i] = m_values[i] - A.m_values[i];
@@ -189,8 +174,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix&
-  operator+=(const TinyMatrix& A)
+  constexpr TinyMatrix& operator+=(const TinyMatrix& A)
   {
     for (size_t i = 0; i < N * N; ++i) {
       m_values[i] += A.m_values[i];
@@ -199,8 +183,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr void
-  operator+=(const volatile TinyMatrix& A) volatile
+  constexpr void operator+=(const volatile TinyMatrix& A) volatile
   {
     for (size_t i = 0; i < N * N; ++i) {
       m_values[i] += A.m_values[i];
@@ -208,8 +191,7 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr TinyMatrix&
-  operator-=(const TinyMatrix& A)
+  constexpr TinyMatrix& operator-=(const TinyMatrix& A)
   {
     for (size_t i = 0; i < N * N; ++i) {
       m_values[i] -= A.m_values[i];
@@ -218,16 +200,14 @@ class TinyMatrix
   }
 
   PUGS_INLINE
-  constexpr T&
-  operator()(size_t i, size_t j) noexcept(NO_ASSERT)
+  constexpr T& operator()(size_t i, size_t j) noexcept(NO_ASSERT)
   {
     Assert((i < N) and (j < N));
     return m_values[_index(i, j)];
   }
 
   PUGS_INLINE
-  constexpr const T&
-  operator()(size_t i, size_t j) const noexcept(NO_ASSERT)
+  constexpr const T& operator()(size_t i, size_t j) const noexcept(NO_ASSERT)
   {
     Assert((i < N) and (j < N));
     return m_values[_index(i, j)];
@@ -299,7 +279,7 @@ class TinyMatrix
   constexpr TinyMatrix(const TinyMatrix&) noexcept = default;
 
   PUGS_INLINE
-  TinyMatrix(TinyMatrix&& A) noexcept = default;
+  TinyMatrix(TinyMatrix && A) noexcept = default;
 
   PUGS_INLINE
   ~TinyMatrix() = default;
diff --git a/src/algebra/TinyVector.hpp b/src/algebra/TinyVector.hpp
index 07690a826ef13040e42baca75daac425fa199333..3f3c10920f5ae75c6b37a0761393cad19a77786b 100644
--- a/src/algebra/TinyVector.hpp
+++ b/src/algebra/TinyVector.hpp
@@ -11,7 +11,7 @@
 #include <cmath>
 
 template <size_t N, typename T = double>
-class TinyVector
+class [[nodiscard]] TinyVector
 {
  public:
   inline static constexpr size_t Dimension = N;
@@ -22,8 +22,7 @@ class TinyVector
   static_assert((N > 0), "TinyVector size must be strictly positive");
 
   template <typename... Args>
-  PUGS_FORCEINLINE constexpr void
-  _unpackVariadicInput(const T& t, Args&&... args) noexcept
+  PUGS_FORCEINLINE constexpr void _unpackVariadicInput(const T& t, Args&&... args) noexcept
   {
     m_values[N - 1 - sizeof...(args)] = t;
     if constexpr (sizeof...(args) > 0) {
@@ -33,8 +32,7 @@ class TinyVector
 
  public:
   PUGS_INLINE
-  constexpr TinyVector
-  operator-() const
+  constexpr TinyVector operator-() const
   {
     TinyVector opposed;
     for (size_t i = 0; i < N; ++i) {
@@ -44,15 +42,13 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr size_t
-  dimension() const
+  constexpr size_t dimension() const
   {
     return N;
   }
 
   PUGS_INLINE
-  constexpr bool
-  operator==(const TinyVector& v) const
+  constexpr bool operator==(const TinyVector& v) const
   {
     for (size_t i = 0; i < N; ++i) {
       if (m_values[i] != v.m_values[i])
@@ -62,8 +58,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr bool
-  operator!=(const TinyVector& v) const
+  constexpr bool operator!=(const TinyVector& v) const
   {
     return not this->operator==(v);
   }
@@ -79,8 +74,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector&
-  operator*=(const T& t)
+  constexpr TinyVector& operator*=(const T& t)
   {
     for (size_t i = 0; i < N; ++i) {
       m_values[i] *= t;
@@ -103,8 +97,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr friend std::ostream&
-  operator<<(std::ostream& os, const TinyVector& v)
+  constexpr friend std::ostream& operator<<(std::ostream& os, const TinyVector& v)
   {
     os << '(' << v.m_values[0];
     for (size_t i = 1; i < N; ++i) {
@@ -115,8 +108,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector
-  operator+(const TinyVector& v) const
+  constexpr TinyVector operator+(const TinyVector& v) const
   {
     TinyVector sum;
     for (size_t i = 0; i < N; ++i) {
@@ -126,8 +118,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector
-  operator+(TinyVector&& v) const
+  constexpr TinyVector operator+(TinyVector&& v) const
   {
     for (size_t i = 0; i < N; ++i) {
       v.m_values[i] += m_values[i];
@@ -136,8 +127,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector
-  operator-(const TinyVector& v) const
+  constexpr TinyVector operator-(const TinyVector& v) const
   {
     TinyVector difference;
     for (size_t i = 0; i < N; ++i) {
@@ -147,8 +137,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector
-  operator-(TinyVector&& v) const
+  constexpr TinyVector operator-(TinyVector&& v) const
   {
     for (size_t i = 0; i < N; ++i) {
       v.m_values[i] = m_values[i] - v.m_values[i];
@@ -157,8 +146,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector&
-  operator+=(const TinyVector& v)
+  constexpr TinyVector& operator+=(const TinyVector& v)
   {
     for (size_t i = 0; i < N; ++i) {
       m_values[i] += v.m_values[i];
@@ -167,8 +155,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr void
-  operator+=(const volatile TinyVector& v) volatile
+  constexpr void operator+=(const volatile TinyVector& v) volatile
   {
     for (size_t i = 0; i < N; ++i) {
       m_values[i] += v.m_values[i];
@@ -176,8 +163,7 @@ class TinyVector
   }
 
   PUGS_INLINE
-  constexpr TinyVector&
-  operator-=(const TinyVector& v)
+  constexpr TinyVector& operator-=(const TinyVector& v)
   {
     for (size_t i = 0; i < N; ++i) {
       m_values[i] -= v.m_values[i];
@@ -241,7 +227,7 @@ class TinyVector
   constexpr TinyVector(const TinyVector&) noexcept = default;
 
   PUGS_INLINE
-  constexpr TinyVector(TinyVector&& v) noexcept = default;
+  constexpr TinyVector(TinyVector && v) noexcept = default;
 
   PUGS_INLINE
   ~TinyVector() noexcept = default;
diff --git a/src/utils/Array.hpp b/src/utils/Array.hpp
index 42ae7f61c375a9cb544020063f827c43dcf5e143..73f820949dbb8e60e031a53065130ff62ca95157 100644
--- a/src/utils/Array.hpp
+++ b/src/utils/Array.hpp
@@ -10,7 +10,7 @@
 #include <algorithm>
 
 template <typename DataType>
-class Array
+class [[nodiscard]] Array
 {
  public:
   using data_type  = DataType;
@@ -23,15 +23,12 @@ class Array
   friend Array<std::add_const_t<DataType>>;
 
  public:
-  PUGS_INLINE
-  size_t
-  size() const noexcept
+  PUGS_INLINE size_t size() const noexcept
   {
     return m_values.extent(0);
   }
 
-  friend PUGS_INLINE Array<std::remove_const_t<DataType>>
-  copy(const Array<DataType>& source)
+  friend PUGS_INLINE Array<std::remove_const_t<DataType>> copy(const Array<DataType>& source)
   {
     Array<std::remove_const_t<DataType>> image(source.size());
     Kokkos::deep_copy(image.m_values, source.m_values);
@@ -42,16 +39,14 @@ class Array
   template <typename DataType2, typename... RT>
   friend PUGS_INLINE Array<DataType2> encapsulate(const Kokkos::View<DataType2*, RT...>& values);
 
-  PUGS_INLINE
-  DataType& operator[](index_type i) const noexcept(NO_ASSERT)
+  PUGS_INLINE DataType& operator[](index_type i) const noexcept(NO_ASSERT)
   {
     Assert(i < m_values.extent(0));
     return m_values[i];
   }
 
   PUGS_INLINE
-  void
-  fill(const DataType& data) const
+  void fill(const DataType& data) const
   {
     static_assert(not std::is_const<DataType>(), "Cannot modify Array of const");
 
@@ -61,8 +56,7 @@ class Array
   }
 
   template <typename DataType2>
-  PUGS_INLINE Array&
-  operator=(const Array<DataType2>& array) noexcept
+  PUGS_INLINE Array& operator=(const Array<DataType2>& array) noexcept
   {
     // ensures that DataType is the same as source DataType2
     static_assert(std::is_same<std::remove_const_t<DataType>, std::remove_const_t<DataType2>>(),
@@ -94,14 +88,13 @@ class Array
   Array(const Array&) = default;
 
   template <typename DataType2>
-  PUGS_INLINE
-  Array(const Array<DataType2>& array) noexcept
+  PUGS_INLINE Array(const Array<DataType2>& array) noexcept
   {
     this->operator=(array);
   }
 
   PUGS_INLINE
-  Array(Array&&) = default;
+  Array(Array &&) = default;
 
   PUGS_INLINE
   ~Array() = default;
diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp
index 437ea62a0d734274900c8af1b474749813e1aeaa..cfe312a0884ae0718ee76c41855ce8b063fecffd 100644
--- a/src/utils/Messenger.hpp
+++ b/src/utils/Messenger.hpp
@@ -168,7 +168,7 @@ class Messenger
             typename RecvArrayType,
             typename... SendT,
             typename... RecvT>
-  RecvArrayType<RecvT...>
+  void
   _allToAll(const SendArrayType<SendT...>& sent_array, RecvArrayType<RecvT...>& recv_array) const
   {
 #ifdef PUGS_HAS_MPI
@@ -189,7 +189,6 @@ class Messenger
 #else    // PUGS_HAS_MPI
     value_copy(sent_array, recv_array);
 #endif   // PUGS_HAS_MPI
-    return recv_array;
   }
 
   template <template <typename... SendT> typename SendArrayType,
diff --git a/tests/test_Array.cpp b/tests/test_Array.cpp
index 3b8dd45878d07747cae3b4e761266c8d9bf14293..0071da34de3f6c5ae3173cb282a5a995462b47c5 100644
--- a/tests/test_Array.cpp
+++ b/tests/test_Array.cpp
@@ -197,6 +197,23 @@ TEST_CASE("Array", "[utils]")
     }
   }
 
+  SECTION("checking for Kokkos::View encaspulation")
+  {
+    {
+      Kokkos::View<double*> kokkos_view("anonymous", 10);
+      for (size_t i = 0; i < kokkos_view.size(); ++i) {
+        kokkos_view[i] = i;
+      }
+
+      Array array = encapsulate(kokkos_view);
+
+      REQUIRE(array.size() == kokkos_view.size());
+      for (size_t i = 0; i < array.size(); ++i) {
+        REQUIRE(&array[i] == &kokkos_view[i]);
+      }
+    }
+  }
+
 #ifndef NDEBUG
   SECTION("checking for bounds violation")
   {