public static Object del(final ConvertedMap data, final FieldReference field) {
        final Object target = findParent(data, field);
        if (target instanceof ConvertedMap) {
            return ((ConvertedMap) target).remove(field.getKey());
        } else {
            return target == null ? null : delFromList((ConvertedList) target, field.getKey());
        }
    }
@Test
    public void testDel() throws Exception {
        final ConvertedMap data = new ConvertedMap(1);
        List<Object> inner = new ConvertedList(1);
        data.put("foo", inner);
        inner.add("bar");
        data.put("bar", "baz");

        assertEquals("bar", del(data, "[foo][0]"));
        assertNull(del(data, "[foo][0]"));
        assertEquals(new ConvertedList(0), get(data,"[foo]"));
        assertEquals("baz", del(data, "[bar]"));
        assertNull(get(data, "[bar]"));
    }