make routing more flexible with catch-all route