Prefab rotation problem

So i have an arrow prefab that is instantiated and force is added when mouse button released but the problem is once the arrow is in flight if i click mouse button again the arrow will rotate towards mouse again?

Here is the code for instantiating

    void HandleRotation(){

		if (Input.GetMouseButton(0)){

		
			if(ArrowControl.thrust < 1000f){
				ArrowControl.thrust++;
				ArrowControl.thrust++;
			}else{
				ArrowControl.thrust = Random.Range (900f, 1000f);
			}
			Debug.Log (ArrowControl.thrust);


			isAiming = true;

			Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
			Vector3 dir = Input.mousePosition - pos;
			angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
			transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
            if(test){
				Instantiate (arrow, arrowpoint.position, Quaternion.AngleAxis(angle, Vector3.forward));
				test = false;
			}
		}
	}

And here is the code for adding force to arrow

void AddPower(){
	
	if (shoot) {

		rotating = true;
		Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
		Vector3 dir = Input.mousePosition - pos;
		angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
		ArrowControl.arrowrb.AddForce (dir.normalized * ArrowControl.thrust);
		ArrowControl.arrowrb.gravityScale = 1f;

		test = true;
	}
}

I also have a ArrowFlight function but i had this problem before the function so i dont think that it has anything to do with that.

Your Instantiate call returns a reference to the cloned object. You’ll usually want to send any instructions or init calls to that clone – you may also want to keep track of it in a list.

Instead, your current code appears to be keeping track of only one arrow. That’s no good; if you want to have multiple arrows, your code will need to match that expectation.

There are plenty of tutorials for instantiating/cloning prefabs, so I recommend searching for them.