contract Startable is Ownable, Authorizable {
  event Start();

  bool public started = false;

  /**
   * @dev Modifier to make a function callable only when the contract is started.
   */
  modifier whenStarted() {
	require( started || authorized[msg.sender] );
    _;
  }

  /**
   * @dev called by the owner to start, go to normal state
   */
  function start() onlyOwner public {
    started = true;
    Start();
  }
}
/**
 * @title Startable
 * @dev Base contract which allows owner to implement an start mechanism without ever being stopped more.
 */
function start() onlyOwner public {
  started = true;
  Start();
}

/**
 * @dev called by the owner to start, go to normal state
 */