Feature/generate named constructor from beConstructedThrough

And named constructors have another utility than just passing ctor arguments.
You can call private methods of `self` in it (even from the "outside").