docs: private Point3d nextConfinedPosition(Point3d lastPosition){
  		
  		double timelagSub = timelag / numberOfSubsteps;
  		Point3d center = new Point3d(0, 0, 0);
  		Point3d lastValidPosition = lastPosition;
  		int validSteps = 0;
  		while(validSteps<numberOfSubsteps){
  			double u = r.nextDouble();
  			double steplength = Math.sqrt(-2*dimension*diffusioncoefficient*timelagSub*Math.log(1-u));
  			
  			Point3d candiate = SimulationUtil.randomPosition(dimension, steplength);
  			candiate.add(lastValidPosition);
  			if(center.distance(candiate)<radius){
  				lastValidPosition = candiate;
  				validSteps++;
  				
  			}else{
  				proportionReflectedSteps++;
  			}
  		}
  		
  		return lastValidPosition;
  	}