contract DistributionToken is StandardToken, Distributable {
  event Mint(address indexed dealer, address indexed to, uint256 value);
  event Burn(address indexed dealer, address indexed from, uint256 value);

   /**
   * @dev to mint tokens
   * @param _to The address that will recieve the minted tokens.
   * @param _value The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _value) public onlyDealers returns (bool) {
    totalSupply = totalSupply.add(_value);
    balances[_to] = balances[_to].add(_value);
    Mint(msg.sender, _to, _value);
    Transfer(address(0), _to, _value);
    return true;
  }

  function burn(address _from, uint256 _value) public onlyDealers returns (bool) {
    totalSupply = totalSupply.sub(_value);
    balances[_from] = balances[_from].sub(_value);
    Burn(msg.sender, _from, _value);
    Transfer(_from, address(0), _value);
    return true;
  }

}
function mint(address _to, uint256 _value) public onlyDealers returns (bool) {
  totalSupply = totalSupply.add(_value);
  balances[_to] = balances[_to].add(_value);
  Mint(msg.sender, _to, _value);
  Transfer(address(0), _to, _value);
  return true;
}

/**
 * @dev to mint tokens
 * @param _to The address that will recieve the minted tokens.
 * @param _value The amount of tokens to mint.
 * @return A boolean that indicates if the operation was successful.
 */