All right so let's try to summarize what we've learned about the builder.
So the builder is a separate component whose only purpose in life is for building up one particular
object.
Now you can either give the builder a constructor there by letting it exist as a separate standalone
component that somebody instantiates and then uses to build something or you can return via a static
function or indeed a static getter from the component that you're actually trying to build for example.
Now to make a boat or into which is a good idea because then you can change the course together.
You simply return this.
So that's a fairly obvious and very common trick.
And in addition we looked at different facets of the object and how they can be built using several
Bulla's working together.
And the reason why they can work together and the reason why you get this nice fluent API is because
they all share a base class that allows the client to switch from one builder to another.