Make Use function Smooth

I have this function:

function ENT:Use( act, caller, CONTINUOUS_USE )

if self:Health() == 0 then self:Remove() end

if caller:Health() < 100 then
	caller:SetHealth( caller:Health() + 1 )
	self:SetHealth( self:Health() - 1 )
	self:EmitSound( "items/smallmedkit1.wav" )



and how do I make it give health smoothly and slow instead of giving health at the “speed of light”?

SetUseType( SIMPLE_USE ); = cant hold E
or you can in ENT:Think() use a variable saying how long ago it gave health last time, if that exceeds or is equal to CurTime() then you give new health. You can in ENT:Use() set lik self.used = true; and in ENT:Think() do

if( self.used && self.lastUse + 1 >= CurTime() ) then
// give health
self.used = false;
self.lastUse = CurTime();

How would that look like? Kinda confused xD

[editline]6th May 2015[/editline]

Got it but how do I make it faster