function isValidPurchase(uint256 value, uint256 amount) internal constant returns (bool) {
		
		bool validTimestamp = startingTimestamp <= block.timestamp && endingTimestamp >= block.timestamp;

		
		bool validValue = value != 0;

		
		bool validRate = tokenPriceInEth > 0;

		
		bool validAmount = tokensForSale.sub(totalTokenSold) >= amount && amount > 0;

		
		return validTimestamp && validValue && validRate && validAmount && !isClose;
	}