diff --git a/src/fluid_solver.hpp b/src/fluid_solver.hpp
index 0104e6bf9917ba099826b6c9ff2de7be8de01e77..d189ac4a59839d0ccf45db370f233fc0db425223 100644
--- a/src/fluid_solver.hpp
+++ b/src/fluid_solver.hpp
@@ -49,27 +49,51 @@ class fluid_solver
         rnumber *rvelocity ;
         cnumber *cvorticity;
         cnumber *cvelocity ;
-        bool fields_allocated;
+
+        /* short names for velocity, and 4 vorticity fields */
+        rnumber *ru, *rv[4];
+        cnumber *cu, *cv[4];
 
         /* plans */
         void *c2r_vorticity;
         void *r2c_vorticity;
         void *c2r_velocity;
         void *r2c_velocity;
+        void *uc2r, *ur2c;
+        void *vr2c[3], *vc2r[3];
 
         /* simulation parameters */
         int iteration;
 
         /* physical parameters */
         rnumber nu;
+        rnumber dkx, dky, dkz, dk;
+
+        /* mode and dealiasing information */
+        double kMx, kMy, kMz, kM, kM2;
+        double *kx, *ky, *kz;
+        bool *knullx, *knully, *knullz;
+        int nonzerokx, nonzeroky, nonzerokz;
+        double *kshell;
+        int64_t *nshell;
+        int nshells;
 
 
         /* methods */
         fluid_solver(
-                int nx, int ny, int nz);
+                int nx,
+                int ny,
+                int nz,
+                double DKX = 1.0,
+                double DKY = 1.0,
+                double DKZ = 1.0);
+
+
+
         ~fluid_solver();
 
-        void step();
+        void omega_nonlin(int src);
+        void step(double dt);
 };
 
 #endif//FLUID_SOLVER