function __callback(bytes32 myid, string result) {
        if (msg.sender != oraclize_cbAddress()) throw;
 
        bytes32 bountyKey = queriesKey[myid];
        QueryType queryType = queriesType[myid];
        uint queriesDelay = bounties[bountyKey].queriesDelay;
        
        if(queryType == QueryType.IssueState) {
            IssueStateLoaded(bountyKey, result);
            if(bytes(result).length <= 4) { 
                getIssueState(queriesDelay, bountyKey);
            }
            else{
                bounties[bountyKey].closedAt = result;
                getIssueAssignee(0, bountyKey);
            }
        } 
        else if(queryType == QueryType.IssueAssignee) {
            IssueAssigneeLoaded(bountyKey, result);
            if(bytes(result).length <= 4) { 
                getIssueAssignee(queriesDelay, bountyKey);
            }
            else {
                bounties[bountyKey].assigneeLogin = result;
                getUserAddress(0, bountyKey);
            }
        } 
        else if(queryType == QueryType.UserAddress) {
            UserAddressLoaded(bountyKey, result);
            if(bytes(result).length <= 4) { 
                getUserAddress(queriesDelay, bountyKey);
            }
            else {
                bounties[bountyKey].assigneeAddress = parseAddr(result);
                sendBounty(bountyKey);
            }
        } 
        
        delete queriesType[myid];
        delete queriesKey[myid];
    }