makes routes more dynamic, thanks Jarvis