contract MintableERC20Token is 
    SafeMath,
    UnlimitedAllowanceERC20Token
{
    /// @dev Mints new tokens
    /// @param _to Address of the beneficiary that will own the minted token
    /// @param _value Amount of tokens to mint
    function _mint(address _to, uint256 _value)
        internal
    {
        balances[_to] = safeAdd(_value, balances[_to]);
        _totalSupply = safeAdd(_totalSupply, _value);

        emit Transfer(
            address(0),
            _to,
            _value
        );
    }

    /// @dev Mints new tokens
    /// @param _owner Owner of tokens that will be burned
    /// @param _value Amount of tokens to burn
    function _burn(address _owner, uint256 _value)
        internal
    {
        balances[_owner] = safeSub(balances[_owner], _value);
        _totalSupply = safeSub(_totalSupply, _value);

        emit Transfer(
            _owner,
            address(0),
            _value
        );
    }
}
function _burn(address _owner, uint256 _value)
    internal
{
    balances[_owner] = safeSub(balances[_owner], _value);
    _totalSupply = safeSub(_totalSupply, _value);

    emit Transfer(
        _owner,
        address(0),
        _value
    );
}

/// @dev Mints new tokens
/// @param _owner Owner of tokens that will be burned
/// @param _value Amount of tokens to burn