public boolean remove(Class<?> type)
    {
        T removed = provided.remove(type);
        if (removed != null)
        {
            provided.values().removeAll(Arrays.asList(removed));
            return true;
        }
        return false;
    }