the beginnings of the app router
fixed merge conflicts