Add base exceptions
Add docs files
Update router code with PIP fixes and more abstractions
New router tests