Added reactive programming