public bool run(int n, int dimension, double c, Point X)
        {
            generator = new RandomPointGenerator();
            planeProjector = new PlaneProjector();
            pointProcessor = new PointProcessor();

            Console.WriteLine("=================== NEW RUN ===================\n");

            if (X == null)
            {
                X = generator.generatePoint(dimension);
            }

            Console.WriteLine("X= " + X.ToString() + "\n");

            //Preparing background worker;
            prepareObjects();

            Object[] arguments = { n, dimension, c, X };

            bgWorker.RunWorkerAsync(arguments);

            return true;
        }