explicit context style. support Next() for wrapping. make Router an interface