@Override
    public List<UBLEntry> fetch() throws UBLParseException, UBLFetchException {
        String jsonString = getJSONString();
        List<UBLEntry> entries = new ArrayList<UBLEntry>();
        try {
            Object rootNode = m_jsonParser.parse(jsonString);

            if(!(rootNode instanceof JSONArray)) {
                throw new UBLParseException("Root node is not an array");
            }
            JSONArray entrylist = (JSONArray) rootNode;

            for(Object entryNode : entrylist) {
                if(!(entryNode instanceof JSONObject)) {
                    throw new UBLParseException("Entry is list is not an object: " + entrylist);
                }
                JSONObject entry = (JSONObject) entryNode;
                JSONUBLEntryBuilder builder = new JSONUBLEntryBuilder(entry);

                entries.add(builder.build());
            }
        } catch (ParseException e) {
            throw new UBLParseException("Failed to parse the JSON as valid");
        }
        return entries;
    }