contract PricingStrategy {

  /**
   * When somebody tries to buy tokens for X eth, calculate how many tokens they get.
   */
  function calculatePrice(uint value, uint tokensSold, uint weiRaised) public constant returns (uint tokenAmount);
}
/**
 * Interface for defining crowdsale pricing.
 */
function calculatePrice(uint value, uint tokensSold, uint weiRaised) public constant returns (uint tokenAmount);

/**
 * When somebody tries to buy tokens for X eth, calculate how many tokens they get.
 */