rewrote routing into a service
merged conflicts