upstream vs downstream applications