Add required packages.
Configure autoload.
Create Tunnel and Kernels.
Configure kernel.
Set handler to kernel.
Fix bug.
Create EventHandlerInterface.
Make AbstractKernel abstract.
KernelInterface extends EventHandlerInterface.
Tunnel implements EventHandlerInterface.
Create Tunnel::registerListener().