func: function() payable stopIfHalted public {
          
          require(now >= start && now <= end);
          
          require(msg.value > 0);
          
          require(unspentWalletAddress != address(0));
  
          
          uint256 calculatedTokens = safeMul(msg.value, perEtherTokens);
  
          
          require(calculatedTokens < balances[unspentWalletAddress]);
  
          
          assignTokens(msg.sender, calculatedTokens);
      }