function release() public {
    require(beneficiaries.length != 0x0);

    uint256 balance = token.balanceOf(address(this));
    uint256 total = add(balance, releasedAmt);

    uint256 lockTime1 = add(baiastm, 183 days); 
    uint256 lockTime2 = add(baiastm, 365 days); 

    uint256 currentRatio = 0;
    if (now >= lockTime1) {
      currentRatio = 50;
    }
    if (now >= lockTime2) {
      currentRatio = 100;  
    }
    require(currentRatio > 0);

    uint256 totalReleaseAmt = div(mul(total, currentRatio), 100);
    uint256 grantAmt = sub(totalReleaseAmt, releasedAmt);
    require(grantAmt > 0);
    releasedAmt = add(releasedAmt, grantAmt);

    uint256 grantAmountForEach = div(grantAmt, beneficiaries.length);
    for (uint i = 0; i < beneficiaries.length; i++) {
        token.safeTransfer(beneficiaries[i], grantAmountForEach);
    }
  }