add route factory