function allocateTokens()
    {
        require(msg.sender==tokenIssuer);
        uint tokens = 0;
     
		if(block.timestamp > month12Unlock && !month12Allocated)
        {
			month12Allocated = true;
			tokens = safeDiv(totalTokensReserve, 5);
			balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
			totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month24Unlock && !month24Allocated)
        {
			month24Allocated = true;
			tokens = safeDiv(totalTokensReserve, 5);
			balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
			totalSupply = safeAdd(totalSupply, tokens);
			
        }
		if(block.timestamp > month30Unlock && !month30Allocated)
        {
			month30Allocated = true;
			tokens = safeDiv(totalTokensReserve, 5);
			balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
			totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month48Unlock && !month48Allocated)
        {
			month48Allocated = true;
			tokens = safeDiv(totalTokensReserve, 5);
			balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
			totalSupply = safeAdd(totalSupply, tokens);
        }
		else if(block.timestamp > month60Unlock && !month60Allocated)
        {
            month60Allocated = true;
            tokens = safeDiv(totalTokensReserve, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else revert();

        AllocateTokens(msg.sender);
    }