refactor router, changed APIs