added controller.stream()