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);
}