//Simplifier function used for function proceeding this:
            private void special_move_helper(int [] position, Movement_variables move_vars)
            {
                int dropped_abs_position = move_vars.drop_by + move_vars.axis_c_rest_position;

                runAbsoluteMoveCommand("C", move_vars.axis_c_rest_position, move_vars.speed_c);
                runAbsoluteMoveCommand("A", position[0], move_vars.speed_a);
                runAbsoluteMoveCommand("B", position[1], move_vars.speed_b);
                runAbsoluteMoveCommand("C", dropped_abs_position, move_vars.speed_c);
            }
            public void move(runAbsoluteMoveCommand runAbsoluteMoveCommand, special_move_helper special_move_helper, Movement_variables move_vars)
            {
                special_move_helper(move_vars.start_position, move_vars);
                // BLOCK of code to complete user specified task....
                // I replace it temporarily with a simple pause:

                // i add VNA stuff in now:
                analyzer.PNA_scan(move_vars.start_position, move_vars.drop_by);
                //WANT TO PASS PNA_SCAN ARGUMENTS TO BE ACCESSED WITHIN THAT METHOD ITSELF
                System.Threading.Thread.Sleep(200);
                move_vars.intermediate_positions?.ForEach(a => {
                    special_move_helper(a, move_vars);
                    // BLOCK of code to complete user specified task....
                    // I replace it temporarily with a simple pause:
                    System.Threading.Thread.Sleep(200);

                    // i add VNA stuff in now:
                    analyzer.PNA_scan(a, move_vars.drop_by);
                });

                special_move_helper(move_vars.end_position, move_vars);
                // BLOCK of code to complete user specified task....
                // I replace it temporarily with a simple pause:
                System.Threading.Thread.Sleep(200);

                // i add VNA stuff in now:
                PNA_scan(move_vars.end_position, move_vars.drop_by);

                // return to original axis-c rest position before ending movement:
                runAbsoluteMoveCommand("C", move_vars.axis_c_rest_position, move_vars.speed_c);
            }
 public virtual void move(runAbsoluteMoveCommand runAbsoluteMoveCommand, Movement_variables move_vars)
 {
 }