(feat) Implemented Router middleware

Make this order match the struct order. It makes it more readable.