Add SmartRouter class. It is the router logic.
A router has a ClientFacingTCPServer which interacts with client app.
It has a SmartRouterTCPServer which interacts with other Smart routers.
It starts a tcp connection with the video server if the server is its neighbor.
It establishes a tcp connection with each neighboring smart nodes as well.

SmartPacket is the base class for all the packets transmitted between Smart nodes.