class ScopedMap implements ScopeSubscriber, Map<K, V> {

    public V get(final Object key) {
        final Stack<ScopedMapItem<V>> stack = map.get(key);

        if (stack == null) {
            return null;
        }

        if (stack.empty()) {
            return null;
        }

        final ScopedMapItem<V> item = stack.peek();
        return item.getValue();
    }

    public  ScopedMap(final ScopeObserver scopeObserver);

}