pick up and look at object

trying to create a script that use my interact setup to pick up object look at and set it down and while looking at it the game is paused, the script I tried gets no errors but wont pause game or allow me to close UI canvas screen with object any ideas ?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPickup : Interactable
{
    [Header("Functional Options")]
    [SerializeField] public GameObject ItemUI;
    [SerializeField] public GameObject Item;
    [SerializeField] public bool timestoped;

	void Update()
	{
	   if(Input.GetKeyDown(KeyCode.Return))
	   {
		   print("Pressed");

		   if(timestoped)
		   {
			    print("Time Start");
                Time.timeScale = 1;
                ItemUI.SetActive(false);
				Item.SetActive(true);
		        timestoped = false;
		   }
	   }
    }

	public override void OnFocus()
	{
	
	}
	public override void OnInteract()
	{
	    print("Time Stop");
        Time.timeScale = 0;
        ItemUI.SetActive(true);
        Item.SetActive(false);
		timestoped = true;
	}
	public override void OnLoseFocus()
	{
		
	}
}

solved:

split it to 3 scripts

on Item:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPickup : Interactable
{
    [Header("Functional Options")]
    [SerializeField] public GameObject ItemUI;
    [SerializeField] public GameObject Item;

	public override void OnFocus()
	{
	
	}
	public override void OnInteract()
	{
	    print("Time Stop");
        ItemUI.SetActive(true);
        Item.SetActive(false);
		TestPause.TimeStop = true;
	}
	public override void OnLoseFocus()
	{
		
	}
}

on UI:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPick2 : MonoBehaviour
{
	[Header("Functional Options")]
	[SerializeField] public GameObject ItemUI;
    [SerializeField] public GameObject Item;

	void Update()
	{
		 if(Input.GetKeyDown(KeyCode.Space))
		 {
             ItemUI.SetActive(false);
             Item.SetActive(true);
			 TestPause.TimeStop = false;
		 }
	}
}

on Player

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPause : MonoBehaviour
{
    public static bool TimeStop = false;
    
    private void Update()
    {

        if (TimeStop)
        {
            StopTime();    
        }

        if (TimeStop == false)
        {
            StartTime();
        }
    }

    void StopTime()
    {
        Time.timeScale = 0;
        GetComponent <FirstPersonController> ().enabled = false;

    }

    void StartTime()
    {
        Time.timeScale = 1;
        GetComponent<FirstPersonController>().enabled = true;
    }
}