function withdraw() external {
withdrawls[msg.sender] = 0; 
payable(msg.sender).sendValue(withdrawls[msg.sender]); 
}

//it is already 0 before transferring, but reaaranging the lines with make the vode vulnerable to reentrancy attack 

//soluution: saving it to a varaiable first? 
function withdraw() external {
uint256 amount_to_withdraw = withdrawls[msg.sender]; 
withdrawls[msg.sender] = 0; 
payable(msg.sender).sendValue(amount_to_withdraw); 
}