Add client data structure.
Add cli options.
Add REPL.
Add missing generic types.
Rename classes and add tests.
Inject the app for dependencies.
Fix command factory.
Fix help message.
Add default port and host.
Add server commands.
Refine help.
Add start/stop command infactory.
Implement two listener worker pattern for server.
Prevent exception in command parser.
Add time out in server for stop and stop server in app shutdown hook.
Make it run.
Add status command and factored out I/O code.