diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0c44ab0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+# Files and directories created by pub
+.dart_tool/
+.packages
+
+# Omit commiting pubspec.lock for library packages:
+# https://dart.dev/guides/libraries/private-files#pubspeclock
+pubspec.lock
+
+# Conventional directory for build outputs
+build/
+
+# Directory created by dartdoc
+doc/api/
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
new file mode 100644
index 0000000..e1316c3
--- /dev/null
+++ b/.idea/libraries/Dart_Packages.xml
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
new file mode 100644
index 0000000..7195834
--- /dev/null
+++ b/.idea/libraries/Dart_SDK.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..eb4e0cf
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..687440b
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,3 @@
+## 1.0.0
+
+- Initial version, created by Stagehand
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1ca6829
--- /dev/null
+++ b/README.md
@@ -0,0 +1,22 @@
+A library for Dart developers.
+
+Created from templates made available by Stagehand under a BSD-style
+[license](https://github.com/dart-lang/stagehand/blob/master/LICENSE).
+
+## Usage
+
+A simple usage example:
+
+```dart
+import 'package:rx_storage/rx_storage.dart';
+
+main() {
+ var awesome = new Awesome();
+}
+```
+
+## Features and bugs
+
+Please file feature requests and bugs at the [issue tracker][tracker].
+
+[tracker]: http://example.com/issues/replaceme
diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..ea7951c
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1,6 @@
+include: package:pedantic/analysis_options.1.9.0.yaml
+linter:
+ rules:
+ - public_member_api_docs
+ - prefer_final_locals
+ - prefer_relative_imports
\ No newline at end of file
diff --git a/example/rx_storage_example.dart b/example/rx_storage_example.dart
new file mode 100644
index 0000000..e69de29
diff --git a/lib/rx_storage.dart b/lib/rx_storage.dart
new file mode 100644
index 0000000..95fff58
--- /dev/null
+++ b/lib/rx_storage.dart
@@ -0,0 +1,11 @@
+/// Support for doing something awesome.
+///
+/// More dartdocs go here.
+library rx_storage;
+
+export 'src/interface/rx_storage.dart';
+export 'src/interface/storage.dart';
+export 'src/logger/default_logger.dart';
+export 'src/logger/logger.dart';
+export 'src/logger/logger_adapter.dart';
+export 'src/model/key_and_value.dart';
diff --git a/lib/src/impl/real_storage.dart b/lib/src/impl/real_storage.dart
new file mode 100644
index 0000000..f481ac5
--- /dev/null
+++ b/lib/src/impl/real_storage.dart
@@ -0,0 +1,319 @@
+import 'dart:async';
+import 'dart:collection';
+
+import 'package:rxdart/rxdart.dart';
+
+import '../interface/rx_storage.dart';
+import '../interface/storage.dart';
+import '../logger/logger.dart';
+import '../model/key_and_value.dart';
+import '../stream_extensions/map_not_null_stream_transformer.dart';
+import '../stream_extensions/single_subscription.dart';
+import '../synchronous_future.dart';
+
+/// Default [RxStorage] implementation
+class RealRxStorage implements RxStorage {
+ /// Trigger subject
+ final _keyValuesSubject = PublishSubject