contract Terminateable is Ownable {
  event Terminate();

  bool public terminated = false;
  
  /**
   * @dev Modifier to make a function callable only when the contract is not terminated.
   */
  modifier whenNotTerminated() {
    require(!terminated);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function terminate() onlyOwner public {
    terminated = true;
    emit Terminate();
  }

}
/**
 * @title Terminateable
 * @dev Base contract which allows children to implement an permanent stop mechanism.
 */
function terminate() onlyOwner public {
  terminated = true;
  emit Terminate();
}

/**
 * @dev called by the owner to pause, triggers stopped state
 */