Port Router

Compiles...untested. Virtual functions need to be checked. Autoformatted
for spacing