router structure implemented