Reactive domains

Should add tests before merging