https://medium.com/javarevisited/fabulous-claim-check-design-pattern-explained-in-just-one-minute-5bac14df0edc