Initial solution to the routing problem + 1 port.

Routing solution still needs work. It's functional but it's too slow.