its setter `setPurgeOnOverwrite()` seems strange... default value is not needed IHO