function stakeTokens (uint _level) public onlyUnlocked {
    Reward storage reward = rewardLevels[_level];
    require (stakerMap[msg.sender].balance == 0);
    require (count < limit);
    require (token.transferFrom(msg.sender, address(this), reward.stakedAmount));
    count = count.add(1);
    balance = balance.add(reward.stakedAmount);
    stakerMap[msg.sender] = Staker(reward.stakedAmount, _level, now, now);
    emit NewStaker (msg.sender, _level, now);
    emit StakerCount (count, limit);
  }