Yeah, I am not sure default construction is a good idea for either Variant or Sam. Do you need it for some reason? It seems unsafe, since it results in an unusable object. Perhaps we should disallow it entirely and force people to use the builder