We should modernize, improve and refactor driver internals to simplify maintenance.
The driver was initially build in 2013/2014, when promises and async functions didn't exist. Driver internals use callbacks which is error prone and hard to maintain.
Modernize codebase to ES2015/ES2017+.
Use async functions internally
Use class syntax for remaining internal classes: Connection, ControlConnection, FrameReader, ...