contract MintableBurnableToken is ERC20Token, Ownable {
  using SafeMath for uint256;
  event Mint(address indexed to, uint256 amount);
  event Burn(address indexed burner, uint256 indexed value);
  //event MintFinished();

  //bool public mintingFinished = false;

  // modifier canMint() {
    //   require(!mintingFinished);
    //   _;
    // }

 /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
     function burn(uint256 _value) onlyOwner returns (bool) {
      require(_value > 0);

      address burner = msg.sender;
      balance[burner] = balance[burner].sub(_value);
      totSupply = totSupply.sub(_value);
      Burn(burner, _value);
    }


  /**
   * @dev Function to mint tokens
   * @param _to The address that will recieve the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
   function mint(address _to, uint256 _amount) onlyOwner returns (bool) {
    totSupply = totSupply.add(_amount);
    balance[_to] = balance[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(0x0, _to, _amount);
    return true;
  }
}
/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
function burn(uint256 _value) onlyOwner returns (bool) {
 require(_value > 0);

 address burner = msg.sender;
 balance[burner] = balance[burner].sub(_value);
 totSupply = totSupply.sub(_value);
 Burn(burner, _value);


/**
 * @dev Burns a specific amount of tokens.
 * @param _value The amount of token to be burned.
 */