Currently, command permission and session checks happen in the CommandParser class, which is instantiated once at the beginning of the application. This means that drivers must have access to the current CommandParser instance to run validated commands through their own command handler, which is quite messy.