return the streams so task dependencies work correctly

also broke out watch into its own task