Rename ports.py to adapters.py and move router models to models.py
Add copyright notices to all files (that didn't have it)
Major refactoring of the code, to split it into Classes.

+ Also update tests for this refactoring