Changed a ton of how this works. Abstracted as well.
Removed CommandExecutorBase
Changed naming