Reactive Software: Behavior-driven AI and Application Interfaces