reorder hooks
add Route interface