Accessing public Variables from inside a Class to use in a Vector

I have been trying to get my Vector to have values based upon the Xposition and Yposition varibles. But i get an error saying “The name ‘Xposition’ and ‘Yposition’ does not exist in the current context” I do not know how to fix this. My goal is to get an object to be able to move to multiple locations when the timer reaches a certain value. IF anyone knows a better way to do this, please let me know. I’m trying to make most of the values accessible without entering the code.

Code:

[System.Serializable]
 public class Properties
{
    public float StartTime;
    public float EndTime;
    public bool NormalMove, SmoothMove;
    public int Xposition, Yposition;         //Xposition and Yposition Variables
    public GameObject[] Objs;
}

public class ObjectProperties : MonoBehaviour
{
public int GoThis;
public float Timer;
public Text TimerTxt;

public bool ExecuteOnce;

private SpriteRenderer rend;
private BoxCollider2D box;

public Vector2 endPosition = new Vector2(Xposition, Yposition);         //Error happens here
private Vector2 startPosition;
public float desiredDuration;
private float elapsedTime;

public Properties[] PropertiesExecuter;

// Start is called before the first frame update
void Start()
{
    startPosition = transform.position;

}

// Update is called once per frame
void Update()
{
    Timer += Time.deltaTime;
    elapsedTime += Time.deltaTime;
    

    if (GoThis < PropertiesExecuter.Length)
    {
        
       if (Timer >= PropertiesExecuter[GoThis].StartTime)
       {
           foreach (GameObject sr in PropertiesExecuter[GoThis].Objs)
           {
               if (PropertiesExecuter[GoThis].NormalMove)
               {
                   
                   transform.position = startPosition;
                   float percentageComplete = elapsedTime / desiredDuration;

                   transform.position = Vector2.Lerp(startPosition, endPosition, percentageComplete);
               }

               if (PropertiesExecuter[GoThis].SmoothMove)
               {
                   float percentageComplete = elapsedTime / desiredDuration;

                   transform.position = Vector2.Lerp(startPosition, endPosition, Mathf.SmoothStep(0, 1, percentageComplete));

               }

               ExecuteOnce = true;
           }
       }
    }
}

}

public class ObjectProperties : MonoBehaviour
{
public Vector2 endPosition;

   void Start()
   {
     startPosition = transform.position;
     endPosition = new Vector2 (Properties.Xposition, Properties.Yposition);
   }

 }

If Null reference error occurs when defining endPosition vector, it means you need to define which instance of"Properties" are you using.