reactive programming closer to working