split out route hooking