Use Variant for Value class
Use private inheritance instead