func: function startCrowdsale(
          string _tokenName,
          string _tokenSymbol,
          uint8 _tokenDecimals,
          uint256 _cap,
          uint256 _goal,
          uint256 _creatorSupply,
          uint256 _startTime,
          uint256 _endTime,
          uint256 _rate,
          address _wallet,
          string _crowdsaleInfo
      ) whenNotPaused public returns (FriendsFingersCrowdsale)
      {
          crowdsaleCount++;
          uint256 _round = 1;
  
          FriendsFingersToken token = new FriendsFingersToken(
              _tokenName,
              _tokenSymbol,
              _tokenDecimals
          );
  
          if (_creatorSupply > 0) {
              token.mint(_wallet, _creatorSupply);
          }
  
          FriendsFingersCrowdsale ffCrowdsale = new FriendsFingersCrowdsale(
          crowdsaleCount,
          _cap,
          _goal,
          _startTime,
          _endTime,
          _rate,
          _wallet,
          token,
          _crowdsaleInfo,
          _round,
          0,
          friendsFingersRatePerMille,
          friendsFingersWallet
          );
  
          if (crowdsaleCount > 1) {
              ffCrowdsale.pause();
          }
  
          token.transferOwnership(address(ffCrowdsale));
  
          addCrowdsaleToList(address(ffCrowdsale));
  
          return ffCrowdsale;
      }