Add support for multiple routes and directions.
Rename np to printer in the main EM Loop