Extract CommandSender to CommandSource, this should prevent Ess user object leaks.