simplify implementations of up and downstream context