This feels wrong, couldn't the command decide what to do in its `perform()` method instead?