diff --git a/blast/interfaces/interpolators/DRbfInterpolator.py b/blast/interfaces/interpolators/DRbfInterpolator.py
index 1eda4a3e12b525a09907cbdb0fede1241d7d51ba..d18b723b45b6d896257d4902af375471716ca334 100644
--- a/blast/interfaces/interpolators/DRbfInterpolator.py
+++ b/blast/interfaces/interpolators/DRbfInterpolator.py
@@ -3,9 +3,11 @@
 import numpy as np
 from scipy.interpolate import RBFInterpolator
 class RbfInterpolator:
-    def __init__(self, _cfg, _nDim):
-        self.cfg = _cfg
-        self.nDim = _nDim
+    def __init__(self, cfg, ndim):
+        self._cfg = cfg
+        if ndim != 2 and ndim != 3:
+            raise ValueError('Number of dimensions must be 2 or 3 but {} was given'.format(ndim))
+        self._ndim = ndim
 
     def inviscidToViscous(self, iDict, vDict):
         ## Airfoil
@@ -16,35 +18,33 @@ class RbfInterpolator:
                 M = np.zeros(reg.nodesCoord.shape[0])
                 rho = np.zeros(reg.nodesCoord.shape[0])
                 for iDim in range(3):
-                    v[:,iDim] = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].V[:,iDim], reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)])
-                M = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].M, reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)])
-                rho = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self.cfg['nDim'] if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].Rho, reg.nodesCoord[:,:(self.cfg['nDim'] if 'vAirfoil' in reg.name else 1)])
+                    v[:,iDim] = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].V[:,iDim], reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)])
+                M = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].M, reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)])
+                rho = self.__rbfToSection(iDict[iReg].nodesCoord[:,:(self._ndim if iDict[iReg].name == 'iWing' else 1)], iDict[iReg].Rho, reg.nodesCoord[:,:(self._ndim if 'vAirfoil' in reg.name else 1)])
                 vDict[iSec][iReg].updateVars(v, M, rho)
 
     def viscousToInviscid(self, iDict, vDict):
-        if self.nDim == 2:
+        if self._ndim == 2:
             for iReg, reg in enumerate(iDict):
-                iDict[iReg].blowingVel = self.__rbfToSection(vDict[0][iReg].elemsCoordTr[:,:(self.cfg['nDim']-1 if 'vAirfoil' in reg.name else 1)], vDict[0][iReg].blowingVel, reg.elemsCoordTr[:,:(self.cfg['nDim']-1 if reg.name == 'iWing' else 1)])
-        elif self.nDim == 3:
+                iDict[iReg].blowingVel = self.__rbfToSection(vDict[0][iReg].elemsCoordTr[:,:(self._ndim-1 if 'vAirfoil' in reg.name else 1)], vDict[0][iReg].blowingVel, reg.elemsCoordTr[:,:(self._ndim-1 if reg.name == 'iWing' else 1)])
+        elif self._ndim == 3:
             for iReg, reg in enumerate(iDict):
                 viscElemsCoord = np.zeros((0,3))
                 viscBlowing = np.zeros(0)
                 for iSec, sec in enumerate(vDict):
                     viscElemsCoord = np.row_stack((viscElemsCoord, sec[iReg].elemsCoord[:,:3]))
                     viscBlowing = np.concatenate((viscBlowing, sec[iReg].blowingVel))
-                if 'Sym' in self.cfg:
-                    for s in self.cfg['Sym']:
+                if 'Sym' in self._cfg:
+                    for s in self._cfg['Sym']:
                         dummy = viscElemsCoord.copy()
                         dummy[:,1] = (dummy[:,1] - s)*(-1) + s
                         viscElemsCoord = np.row_stack((viscElemsCoord, dummy))
                         viscBlowing = np.concatenate((viscBlowing, viscBlowing))
                 reg.blowingVel = self.__rbfToSection(viscElemsCoord, viscBlowing, reg.elemsCoord[:,:3])
-        else:
-            raise RuntimeError('Incorrect number of dimensions', self.cfg['nDim'])
 
     def __rbfToSection(self, x, var, xs):
         if np.all(var == var[0]):
             varOut = RBFInterpolator(x, var, neighbors=1, kernel='linear', smoothing=0.0, degree=0)(xs)
         else:
-            varOut = RBFInterpolator(x, var, neighbors=self.cfg['neighbors'], kernel=self.cfg['rbftype'], smoothing=self.cfg['smoothing'], degree=self.cfg['degree'])(xs)
+            varOut = RBFInterpolator(x, var, neighbors=self._cfg['neighbors'], kernel=self._cfg['rbftype'], smoothing=self._cfg['smoothing'], degree=self._cfg['degree'])(xs)
         return varOut
\ No newline at end of file