add params, begin router; router not finished, untested