Applying Damage to enemy script not working

I made two scripts, one is called MeleeSystem which is responsible for getting the distance between me and an enemy object/player and based on that, apply 20 damage to that object’s health, which is found in my EnemyHealth class.

here’s my code

MeleeSystem Class

#pragma strict

var Damage : int = 20;
var Distance : float;
var MaxDistance : float = 1.5f;

function Update()
{
	if(Input.GetButtonDown("Fire1"))
	{
		var hit : RaycastHit;
		if(Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit))
		{
			Distance = hit.distance;
			if(Distance < MaxDistance)
			{				
				transform.SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
			}
		}
	}
}

EnemyHealth Class

#pragma strict

var Health = 100;

function ApplyDamage(Damage : int)
{
	Health -= Damage;
	print(Health);
}

function Update()
{
	if(Health <= 0)
	{
		Dead();
	}
}

function Dead()
{
	Destroy(gameObject);
}

I am getting this warning: The referenced script on this behaviour is missing!
that’s for both the classes. And yes, the classes are correctly placed.

like it says : one (or more) of your gameobjects in the scene is (are) missing an attached script. Look through your gameobjects in the scene and look for any script that reads None (Mono Script) where the script should be. Delete those or attached the correct script and you get rid of that error message. If you click the error message once it should highlight the gamobject in question in the Hierarchy if I’m not mistaken. (could also be a prefab in the project)