@Override
    public boolean remove(Object o) {
        return underlying.remove(o);
    }
@Test
    public void testRemove() {
        BoundedList<String> list = BoundedList.newArrayBacked(3);
        list.add("a");
        list.add("a");
        list.add("c");
        assertEquals(0, list.indexOf("a"));
        assertEquals(1, list.lastIndexOf("a"));
        list.remove("a");
        assertEquals(Arrays.asList("a", "c"), list);
        list.remove(0);
        assertEquals(Arrays.asList("c"), list);
    }