174:@>       uint256 claimableSteps = currentStep - vesting.stepsClaimed;
File: SecondSwap_StepVesting.sol
172:         uint256 elapsedTime = currentTime - startTime;
173:         uint256 currentStep = elapsedTime / stepDuration;
174:@>       uint256 claimableSteps = currentStep - vesting.stepsClaimed;
175: 
176:         uint256 claimableAmount;
177: 
178:@>       if (vesting.stepsClaimed + claimableSteps >= numOfSteps) {
179:             //[BUG FIX] user can buy more than they are allocated
180:             claimableAmount = vesting.totalAmount - vesting.amountClaimed;
181:@>           return (claimableAmount, claimableSteps);
182:         }
File: SecondSwap_StepVesting.sol
193:     function claim() external {
//    CODE
198:@>       vesting.stepsClaimed += claimableSteps;
199:         vesting.amountClaimed += claimableAmount;
--   if (numOfSteps - _vestings[_beneficiary].stepsClaimed != 0)
++   if (numOfSteps > _vestings[_beneficiary].stepsClaimed){
File: SecondSwap_StepVesting.sol
161:     function claimable(address _beneficiary) public view returns (uint256, uint256) {
//    CODE
172:         uint256 elapsedTime = currentTime - startTime;
173:         uint256 currentStep = elapsedTime / stepDuration;
174:@>       uint256 claimableSteps = currentStep - vesting.stepsClaimed;
--       uint256 claimableSteps = currentStep - vesting.stepsClaimed;
++       uint256 claimableSteps = currentStep > vesting.stepsClaimed ? 0 : currentStep - vesting.stepsClaimed;
