Why is this a macro ? 
And why call again, same hash calculated on line 674