diff --git a/examples/simple-solver/main.cpp b/examples/simple-solver/main.cpp
index ff58abf960acf3a80b86d72aa9a847f47946b03e..9d3e4ce207b3d136a97a7fa21217e55afcb84eb4 100644
--- a/examples/simple-solver/main.cpp
+++ b/examples/simple-solver/main.cpp
@@ -20,9 +20,17 @@
 #include <config/tnlBasicTypesSetter.h>
 #include <solvers/tnlProblemSolver.h>
 
+#include <core/tnlHost.h>
+#include <config/tnlParameterContainer.h>
+
 int main( int argc, char* argv[] )
 {
    typedef simpleProblemTypesSetter ProblemSetter;
+
+   tnlParameterContainer parameters;
+   ProblemSetter problemSetter;
+   problemSetter. run< double, tnlHost, int >( parameters );
+
    typedef tnlBasicTypesSetter< ProblemSetter > BasicTypesSetter;
    tnlProblemSolver< BasicTypesSetter > problemSolver;
    if( ! problemSolver. run( CONFIG_FILE, argc, argv ) )
diff --git a/src/implementation/config/tnlBasicTypesSetter_impl.h b/src/implementation/config/tnlBasicTypesSetter_impl.h
index 68e79c6a6b2ae64aa2ef0555a639d0b1fd639f1c..d1252aa61fee7e4cb1c1fab99e03fa26ab1b897c 100644
--- a/src/implementation/config/tnlBasicTypesSetter_impl.h
+++ b/src/implementation/config/tnlBasicTypesSetter_impl.h
@@ -111,11 +111,14 @@ bool tnlBasicTypesSetter< ProblemTypesSetter > :: setDeviceType( const tnlParame
       return false;
    }
    ProblemTypesSetter problemTypesSetter;
+   /*const tnlString& device2 = parameters. GetParameter< tnlString >( "device" );
+   problemTypesSetter. run< double, tnlHost, int >( parameters );
+   problemTypesSetter. run< RealType, tnlHost, IndexType >( parameters );
    if( device == "host" )
       return problemTypesSetter. run< RealType, tnlHost, IndexType >( parameters );
    if( device == "cuda" )
       return problemTypesSetter. run( parameters );
-   cerr << "The device '" << device << "' is not defined. " << endl;
+   cerr << "The device '" << device << "' is not defined. " << endl;*/
    return false;
 }
 
diff --git a/src/implementation/solvers/linear/krylov/tnlGMRESSolver_impl.h b/src/implementation/solvers/linear/krylov/tnlGMRESSolver_impl.h
index ddc12d4359aaba44c0642a554c0ffa8c4dfad717..d3033cd9cb959133206d1b74fa16de2b57852696 100644
--- a/src/implementation/solvers/linear/krylov/tnlGMRESSolver_impl.h
+++ b/src/implementation/solvers/linear/krylov/tnlGMRESSolver_impl.h
@@ -272,12 +272,13 @@ tnlGMRESSolver< Matrix, Preconditioner > :: ~tnlGMRESSolver()
 
 template< typename Matrix,
           typename Preconditioner >
+   template< typename Vector >
 void tnlGMRESSolver< Matrix, Preconditioner > :: update( IndexType k,
                                                          IndexType m,
                                                          const tnlVector< RealType, tnlHost, IndexType >& H,
                                                          const tnlVector< RealType, tnlHost, IndexType >& s,
                                                          tnlVector< RealType, DeviceType, IndexType >& v,
-                                                         tnlVector< RealType, DeviceType, IndexType >& x )
+                                                         Vector& x )
 {
    //dbgFunctionName( "tnlGMRESSolver", "Update" );
    tnlVector< RealType, tnlHost, IndexType > y( "tnlGMRESSolver::update:y" );
diff --git a/src/solvers/linear/krylov/tnlGMRESSolver.h b/src/solvers/linear/krylov/tnlGMRESSolver.h
index a9ac9195d6df1d36630626296c0eceb3578a9ff9..1a1b07cc1c3f765eaafc10bbc6656f6ff8f6abc2 100644
--- a/src/solvers/linear/krylov/tnlGMRESSolver.h
+++ b/src/solvers/linear/krylov/tnlGMRESSolver.h
@@ -59,12 +59,13 @@ class tnlGMRESSolver : public tnlObject,
 
    protected:
 
+   template< typename Vector >
    void update( IndexType k,
                 IndexType m,
                 const tnlVector< RealType, tnlHost, IndexType >& H,
                 const tnlVector< RealType, tnlHost, IndexType >& s,
                 tnlVector< RealType, DeviceType, IndexType >& v,
-                tnlVector< RealType, DeviceType, IndexType >& x );
+                Vector& x );
 
    void generatePlaneRotation( RealType &dx,
                                RealType &dy,