class ImmutableThingFromScratchBuilder implements ThingBuilder, ThingBuilder.FromScratch {

    @Override
    public Thing build() {
        if (null != policyId) {
            return ImmutableThing.of(id, null, policyId, definition, getAttributes(), getFeatures(), lifecycle,
                    revision, modified, created, metadata);
        } else {
            return ImmutableThing.of(id, getAcl(), null, definition, getAttributes(), getFeatures(), lifecycle,
                    revision, modified, created, metadata);
        }
    }

    private  ImmutableThingFromScratchBuilder();

}