refactored CommandOperationBase to not take the command result as a type parameter.