Switch to CommandExecutor and make commands modular