catch_exception belongs under Driver
Split driver code into submodule, introducing driver registry