how do I change the rotation of a vector?

Right now I am trying to create a projectile that splits into two additional projectiles, with the two extra projectiles being slightly rotated from the original.

My first projectile is done by creating a vector from my player position to where I clicked my mouse and this works perfectly:

private float dirX = targetX - x;
private float dirY = targetY - y

public void vectorShoot(){
	
	double dl = Math.sqrt(dirX * dirX + dirY * dirY);
	newDirX = (float) (dirX/dl);
	newDirY = (float) (dirY/dl);
	

	x = x + (newDirX * speed);
	y = y + (newDirY * speed);

}

now I try to create two additional vectors and rotate them based off the initial vectors angle:

public void calculateAngles(){
//first I calculate the initial angle from the initial Vector
initialAngle = (Math.atan2(targetY - initialPosY, targetX - initialPosX));
//then I create two new angles and rotate them by 15 degrees counterclockwise & clockwise
CCWAngle = initialAngle - Math.toRadians(15);
CWAngle = initialAngle + Math.toRadians(15);

	//then I create new vectors and change the angle
	tx =  (float) (dirX * Math.cos(CCWAngle) - dirY * Math.sin(CCWAngle));
	ty = (float) (dirX * Math.sin(CCWAngle) - dirY * Math.cos(CCWAngle));
	
	tx2 =  (float) (dirX * Math.cos(CWAngle) - dirY * Math.sin(CWAngle));
	ty2 = (float) (dirX * Math.sin(CWAngle) - dirY * Math.cos(CWAngle));
	
	
	
	split();
}

    //then I just create two new projectiles with the new headings
public void split(){
	handler.getWorld().getBulletManager().addBullet(new SplitBullet(handler, initialPosX, initialPosY, tx, ty));
	handler.getWorld().getBulletManager().addBullet(new SplitBullet(handler, initialPosX, initialPosY, tx2, ty2));
}

  what am I doing wrong?
   results: one of my new projectiles seems to just head towards 0.53 no matter where I click while another projectile seems to rotate slightly