class ChangeHandledMultiMap implements MultiMap<V, T, ListType> {

    @Override
    public boolean put(final V value,
                       final T t) {
        addToCounter();

        final boolean put = map.put(value,
                                    t);

        addToChangeSet(value,
                       t);

        fire();

        return put;
    }

    public  ChangeHandledMultiMap(final MultiMap<V, T, ListType> map);

}