function withdrawAll()
        public
    {
        address _customerAddress = msg.sender;
        
        uint256 amount = tokenBalanceOf(_customerAddress);
        require(amount > 0);
        
        if(!ERC20Interface(tokenAddress).transfer(_customerAddress, amount))
            revert();
        balanceLedger_[_customerAddress] = 0;
        personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;
        emit onWithdraw(_customerAddress, amount, getBalance(), now);
    }