diff --git a/src/determinist/evaluator.hpp b/src/determinist/evaluator.hpp
index d31abdd03ae68d02ec651660e4d0383a81ffd599..800c128472ef5b6a513b000a357f1b24ea50035b 100644
--- a/src/determinist/evaluator.hpp
+++ b/src/determinist/evaluator.hpp
@@ -1,6 +1,7 @@
 #ifndef EVALHYD_DETERMINIST_EVALUATOR_HPP
 #define EVALHYD_DETERMINIST_EVALUATOR_HPP
 
+#include <xtensor/xexpression.hpp>
 #include <xtensor/xtensor.hpp>
 
 namespace evalhyd
@@ -19,7 +20,11 @@ namespace evalhyd
 
         public:
             // constructor method
-            Evaluator(const A& obs, const A& prd) : q_obs{obs}, q_prd{prd} {
+            Evaluator(const xt::xexpression<A>& obs,
+                      const xt::xexpression<A>& prd) :
+                    q_obs{obs.derived_cast()},
+                    q_prd{prd.derived_cast()}
+            {
                 // check that data dimensions are compatible
                 if (q_prd.dimension() != q_obs.dimension())
                 {