Multiple loading of a scene listening to an event cause multiple handling of event

I have two scenes, one is called LevelSelevtor and the other is Called GameScene. From the level selector based on which level is selected I call the GameScene like this:

SceneManager.LoadScene("GameScene");

With a similar line of code, I do move to LevelSelector from GameScene.

On the GameScence there is an empty objected called GameController that a c# code is attached to it and on the awake function of this code, it subscribes to a static event and in the event handler a game object is instantiated, So the awake and the event handler are like this:

private void Awake()
{
       someStaticClass.SomeEvent  += myEventHandler;
}
private void myEventHandler
{
       Instantiate(someGameObject)
}

On the first run, going from LevelSelctor to GameScene everything works perfectly fine. But, if you go from GameScene to LevelSelector and again load a new GameScene, when the event is raised the event handler is called twice. If you do it ten times, the event handler is called ten times. Intuitively this means that whenever you load a scene the controllers are not destroyed after you call a new scene, right? If so, how do I prevent that? I need each load of my GameScene to behave independently.

Please find the answer to this question here