+ attempt to tie components transparently and independant of context
r router and gateway decoupled