more flexible routes data structure