make L3 routing design more generic