function calculateTokensWithBonus (uint _value) public view returns(uint) {
    uint buffer = _value.mul(uint(10).pow(decimals))/(tokenPrice);
    return buffer.add(buffer.mul(getTimeBasedBonus(now))/100);
  }