Replaces constructor calls with builder patterns.

Class constructors are left unchanged, but clients are able to construct objects step by step.

It can be especially useful for constructors with long list of optional parameters.