Should we just get rid of the Initialize method altogether? It might make providing a custom constructor in a derived class kinda painful for our users since there would be a lot of parameters to pass through to the base constructor.