Introducing ExecutionTask and refactored Commands to end up as an ExecutionTask - also registering any commands into the region and introducing isValid(), validationMessages() and isExecuting() observables