in reply to Philosophy of a "new" method
I think about such themes in this way:
Q: What goal I have?
A: To obtain new object instance in meaningful state.
Q: How to do it?
A: Start with simplest new() method and gradually add initial data structures. If it starts to be too chaotic, improve it, for instance using init() inside new(). If it, after some development, does not fit requirements well, develop other mechanism...