Why do you need to have initialize as a separate call? Can't the ctor just do what it does?