function allocateMARTokens() public {
        require(msg.sender==tokenIssuer);
        uint tokens = 0;
     
        if(block.timestamp > month6Unlock && !month6Allocated)
        {
            month6Allocated = true;
            tokens = safeDiv(totalTokensMAR, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month12Unlock && !month12Allocated)
        {
            month12Allocated = true;
            tokens = safeDiv(totalTokensMAR, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month24Unlock && !month24Allocated)
        {
            month24Allocated = true;
            tokens = safeDiv(totalTokensMAR, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month36Unlock && !month36Allocated)
        {
            month36Allocated = true;
            tokens = safeDiv(totalTokensMAR, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else if(block.timestamp > month48Unlock && !month48Allocated)
        {
            month48Allocated = true;
            tokens = safeDiv(totalTokensMAR, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else revert();

        AllocateMARTokens(msg.sender);
    }