https://medium.com/holisticon-consultants/efficiently-creating-fluent-interfaces-in-java-d8a74351497b