internal StateMap(Serializers serializers, IReadOnlyDictionary <string, object> currentState) { _serializers = serializers; _entries = new Dictionary <string, Entry>(); foreach (var(key, value) in currentState) { _entries[key] = new Entry(value); } _serializables = currentState .Where(kv => kv.Value != null && serializers.IsSerializable(kv.Value)) .ToDictionary(kv => kv.Key, kv => serializers.AddAndWrapUp(kv.Value)); }