Hopefully the last time I change my mind on what I want these to be called. Reason behind this change is to minimize scope of a single module. The WindowDriver should really only handle stuff related to windows. If we need OS level functionality (e.g. get_os_name), that should be the responsibility of the OS driver (or whatever that ends being called). Remember, composition over inheritance.