diff --git a/kurtosis.cc b/kurtosis.cc
index 474763ad6bbf602d68bcafa5d9a2db7fec8670d7..0a5e0f6f1e9237a16999cbf5c6a52451806ce02a 100644
--- a/kurtosis.cc
+++ b/kurtosis.cc
@@ -106,7 +106,7 @@ public:
   float evaluate(const ColumnVector& x) const{
     float res=0;
     res = ( m_A + m_B*x(7) + m_C*x.SubMatrix(1,6,1,1)
-	    + m_D*x.SubMatrix(8,22,1,1)*(x(1)+x(4)+x(6))*(x(1)+x(4)+x(6))/9 ).SumSquare();
+	    + m_D*x.SubMatrix(8,22,1,1)*(x(1)+x(4)+x(6))*(x(1)+x(4)+x(6))/9).SumSquare();
 
     return res;
   }
@@ -161,11 +161,6 @@ public:
 
 };
 
-inline float PI() { return  3.14159265358979;}
-inline float min(float a,float b){
-  return a<b ? a:b;}
-inline float max(float a,float b){
-  return a>b ? a:b;}
 inline Matrix Anis()
 { 
   Matrix A(3,3);
@@ -175,41 +170,6 @@ inline Matrix Anis()
   return A;
 }
 
-inline Matrix Is()
-{ 
-  Matrix I(3,3);
-  I << 1 << 0 << 0
-    << 0 << 1 << 0
-    << 0 << 0 << 1;
-  return I;
-}
-
-inline ColumnVector Cross(const ColumnVector& A,const ColumnVector& B)
-{
-  ColumnVector res(3);
-  res << A(2)*B(3)-A(3)*B(2)
-      << A(3)*B(1)-A(1)*B(3)
-      << A(1)*B(2)-B(1)*A(2);
-  return res;
-}
-
-inline Matrix Cross(const Matrix& A,const Matrix& B)
-{
-  Matrix res(3,1);
-  res << A(2,1)*B(3,1)-A(3,1)*B(2,1)
-      << A(3,1)*B(1,1)-A(1,1)*B(3,1)
-      << A(1,1)*B(2,1)-B(1,1)*A(2,1);
-  return res;
-}
-
-float mod(float a, float b){
-  while(a>b){a=a-b;}
-  while(a<0){a=a+b;}
-  return a;
-}
-
-
-
 Matrix form_Amat(const Matrix& r,const Matrix& b)
 {
   Matrix A(r.Ncols(),7);
@@ -239,88 +199,10 @@ inline SymmetricMatrix vec2tens(ColumnVector& Vec){
   return tens;
 }
 
-void tensorfit(DiagonalMatrix& Dd,ColumnVector& evec1,ColumnVector& evec2,ColumnVector& evec3,float& f,float& s0,ColumnVector& Dvec, const Matrix& Amat,const ColumnVector& S)
-{
-  //Initialise the parameters using traditional DTI analysis
-  ColumnVector logS(S.Nrows());
-  SymmetricMatrix tens;   //Basser's Diffusion Tensor;
-  //  DiagonalMatrix Dd;   //eigenvalues
-  Matrix Vd;   //eigenvectors
-  DiagonalMatrix Ddsorted(3);
-  float mDd, fsquared;
-
-  for ( int i = 1; i <= S.Nrows(); i++)
-    {
-      if(S(i)>0){
-	logS(i)=log(S(i));
-      }
-      else{
-	logS(i)=0;
-      }
-      //      logS(i)=(S(i)/S0)>0.01 ? log(S(i))-log(S0):log(0.01);
-    }
-
-  Dvec = -pinv(Amat)*logS;
-  if(  Dvec(7) >  -maxlogfloat ){
-    s0=exp(-Dvec(7));
-  }
-  else{
-    s0=S.MaximumAbsoluteValue();
-  }
-  for ( int i = 1; i <= S.Nrows(); i++)
-    {
-      if(s0<S.Sum()/S.Nrows()){ s0=S.MaximumAbsoluteValue();  }
-      logS(i)=(S(i)/s0)>0.01 ? log(S(i)):log(0.01*s0);
-    }
-  Dvec = -pinv(Amat)*logS;
-  s0=exp(-Dvec(7));
-  if(s0<S.Sum()/S.Nrows()){ s0=S.Sum()/S.Nrows();  }
-  tens = vec2tens(Dvec);
-  EigenValues(tens,Dd,Vd);
-  mDd = Dd.Sum()/Dd.Nrows();
-  int maxind = Dd(1) > Dd(2) ? 1:2;   //finding max,mid and min eigenvalues
-  maxind = Dd(maxind) > Dd(3) ? maxind:3;
-  int midind;
-  if( (Dd(1)>=Dd(2) && Dd(2)>=Dd(3)) || (Dd(1)<=Dd(2) && Dd(2)<=Dd(3)) ){midind=2;}
-  else if( (Dd(2)>=Dd(1) && Dd(1)>=Dd(3)) || (Dd(2)<=Dd(1) && Dd(1)<=Dd(3)) ){midind=1;}
-  else {midind=3;}
-  int minind = Dd(1) < Dd(2) ? 1:2;   //finding maximum eigenvalue
-  minind = Dd(minind) < Dd(3) ? minind:3;
-  Ddsorted << Dd(maxind) << Dd(midind) << Dd(minind);
-  Dd=Ddsorted;
-  evec1 << Vd(1,maxind) << Vd(2,maxind) << Vd(3,maxind);
-  evec2 << Vd(1,midind) << Vd(2,midind) << Vd(3,midind);
-  evec3 << Vd(1,minind) << Vd(2,minind) << Vd(3,minind);
-
-  float numer=1.5*((Dd(1)-mDd)*(Dd(1)-mDd)+(Dd(2)-mDd)*(Dd(2)-mDd)+(Dd(3)-mDd)*(Dd(3)-mDd));
-  float denom=(Dd(1)*Dd(1)+Dd(2)*Dd(2)+Dd(3)*Dd(3));
- 
-  if(denom>0) fsquared=numer/denom;
-  else fsquared=0;
-  if(fsquared>0){f=sqrt(fsquared);}
-  else{f=0;}
-
-}
-
 void kurtosisfit(DiagonalMatrix& Dd,ColumnVector& evec1,ColumnVector& evec2, ColumnVector& evec3,
 		 float& f,float& s0,ColumnVector& Dvec, float& mk, ColumnVector& tens4, 
 		 const Matrix& Amat,const Matrix& Kmat,const ColumnVector& S,const Matrix& bvals,const Matrix& bvecs){
 
-  // initialise second-order tensor with simple tensor fit
-  // tensorfit(Dd,evec1,evec2,evec3,f,s0,Dvec,Amat,S);
-  //SymmetricMatrix tens;
-  //tens = vec2tens(Dvec);
-
-//   // initialise Kurtosis using Linear fit
-//   ColumnVector v(S.Nrows());
-//   for(int i=1;i<=S.Nrows();i++){
-//   float bDi = bvals(1,i)*(bvecs.Column(i).t()*tens*bvecs.Column(i)).AsScalar();
-//   if(bDi>0)
-//     v(i) = 6*(log(S(i)/s0)+bDi)/(bDi*bDi);
-//   else
-//     v(i) = 0;
-//   }
-//   tens4 = pinv(Kmat) * v;
 
   // calculate DT and KT using non-linear fitting
   KurtosisNonlinCF KNL(S,bvals,bvecs);
@@ -370,7 +252,8 @@ void kurtosisfit(DiagonalMatrix& Dd,ColumnVector& evec1,ColumnVector& evec2, Col
       mk+=vec(i)/(bvecs.Column(i).t()*tens*bvecs.Column(i)).AsScalar();
   }
   mk *= mDd*mDd;
-  //OUT(mk);
+  mk /= float(S.Nrows());
+  
 }
 
 int main(int argc, char** argv)