pages: add cleaner routing and rendering