I'm not crazy about this commandLineListener() method. The refactoring was convenient because this class needs the listener and can create it from the options object.  I think the listener is needed in every context XD creates (@ericbottard ?).  The alternative is to create it externally and pass it as an arg, but then that code is duplicated in SingleNodeApplication.