It's a little mess here. I would move Commands object creation to instantiate callback. I think that SetDefaultType will not be then necessary.