there are two reasons i combined these classes this bp enables all current datasource drivers to use execute i do not imagine someone would make a subclass of just executiondriver because user does not have any way to handle executiondriver now  imo  in case of someone wants to create a new driver which does not need to have execute the developer writes the new driver directly inheriting datasoucedriver 