use StreamControllers for internal events