class ImmutableThingFromScratchBuilder implements ThingBuilder, ThingBuilder.FromScratch {

    @Override
    public FromScratch setAttributes(final Attributes attributes) {
        checkNotNull(attributes, "Attributes to be set");

        if (attributes.isNull()) {
            return setNullAttributes();
        } else {
            invokeOnAttributesBuilder(ab -> ab.removeAll().setAll(attributes));
            return this;
        }
    }

    private  ImmutableThingFromScratchBuilder();

}