contract BizCoin is owned, TokenERC20 {

  uint256 public sendOnRequest = 10000 * (10 ** uint256(decimals));

  mapping (address => bool) public hasRequested;

  // set initial to 2,000,000 so there can be max 200 requests
  function BizCoin(uint256 initialSupply, string tokenName, string tokenSymbol) TokenERC20(initialSupply, tokenName, tokenSymbol) public {}

  function _transfer(address _from, address _to, uint _value) internal {
    require(_to != 0x0);
    require(balanceOf[_from] >= _value); // sender has enough
    require(balanceOf[_to] + _value > balanceOf[_to]); // no overflows
    uint previousBalances = balanceOf[_from] + balanceOf[_to];
    balanceOf[_from] -= _value;
    balanceOf[_to] += _value;
    Transfer(_from, _to, _value);
    assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
  }

  function request() public {
    require(hasRequested[msg.sender] == false);
    hasRequested[msg.sender] = true;
    _transfer(this, msg.sender, sendOnRequest);
  }

  function () payable public {
    request();
  }

}
function BizCoin(uint256 initialSupply, string tokenName, string tokenSymbol) TokenERC20(initialSupply, tokenName, tokenSymbol) public {}

// set initial to 2,000,000 so there can be max 200 requests